프로그래머스.리코쳇 로봇.python
from collections import deque def solution(board): answer = 0 yLength, xLength, start, end = len(board), len(board[0]), (0,0), (0,0) movable = [(1,0), (-1,0), (0,1), (0,-1)] visitWayCnt = dict() for i in range(yLength): for j in range(xLength): if board[i][j] == 'R': start = (i,j) if board[i][j] == 'G': end = (i,j) visitWayCnt[(i,j)] = 0 #print(start) visitQ = deque([start]) visited = set([start..
2023. 12. 17.
프로그래머스. 광물 캐기. python
def solution(picks, minerals): answer, mining = 0, {"diamond":[1,5,25], "iron":[1,1,5], "stone":[1,1,1]} mineral_group_fatigue, minerals_len, extra_fatigue = [], len(minerals), [] minable = sum(picks) * 5 #print(minable) minable_cnt = 0 # n번 group을 dia, iron, stone곡괭이로 채굴했을 때의 fatigue(피로도) 저장 fatigue = [0,0,0] for i,mineral in enumerate(minerals, start = 1): minable_cnt += 1 if minable_cnt > min..
2023. 12. 17.
프로그래머스.[PCCP 기출문제] 2번 / 석유 시추.python
from collections import deque def solution(land): # 덩이리별 x와 덩어리 크기 반환 def dfs(start, land_map, total_dung): move = [(1,0),(-1,0),(0,-1),(0,1)] vist_que = deque([start]) visted_x_set = set() cnt = 0 while len(vist_que) != 0: y,x = vist_que.popleft() visted_x_set.add(x) cnt += 1 for m in move: dy, dx = y, x dy -= m[0] dx -= m[1] if 0
2023. 12. 11.
[PCCP 모의고사 #2] 3번 - 카페 확장.python
def solution(menu, order, k): answer, time_table, t_tm, wait_p = 0, [], 0, 0 # time_table 작성 [(0, 1), (10, 1), (12, -1)] (시간, 인원 변화) for i in range(len(order)): time_table.append((k*i, 1)) # i번째 손님 주문 시간 if t_tm > k*i: # 주문 시간보다 대기 시간이 더 크면 t_tm += menu[order[i]] # 대기 시간에 추가 else: t_tm = k*i + menu[order[i]] # 주문 시간에 추가 time_table.append((t_tm, -1)) time_table.sort() for tm in time_table: wait_p..
2023. 12. 4.