본문 바로가기

Algorithm 💡/Implementation50

[백준 21608번] 상어 초등학교 n = int(input()) data = [[] for _ in range(n**2)] location = [[0]*n for _ in range(n)] dx = [-1,1,0,0] dy = [0,0,-1,1] like_dict = {} sequence = [] total = 0 for i in range(n**2): data[i] = list(map(int, input().split())) for i in range(n**2): sequence.append(data[i][0]) for j in range(1,5): if like_dict.get(data[i][0]) == None: like_dict[data[i][0]] = {data[i][j]} else: like_dict[data[i][0]].ad.. 2023. 7. 31.
[프로그래머스] 연속된 수의 합 def solution(num, total): answer = [] multiple = 0 if num%2 == 0: start_num = num//2 answer = [i for i in range(-(num//2)+1, num//2+1)] else: start_num = 0 answer = [i for i in range(-(num//2),num//2+1)] while(1): if start_num == total: answer = [i+multiple for i in answer] break start_num += num multiple += 1 return answer 이번 문제는 주어진 num개의 연속된 수의 합이 total이 되도록 하는 연속된 수로 이루어진 배열을 구하는 문제이다. 처음에는 .. 2023. 7. 23.
[프로그래머스] 바탕화면 정리 def solution(wallpaper): left_top = [49,49] right_down = [0,0] row_l, col_l = len(wallpaper), len(wallpaper[0]) area = [[""]*col_l for _ in range(row_l)] for i,row in enumerate(wallpaper): for j,item in enumerate(row): area[i][j] = item if item == "#": left_top[0] = min(left_top[0],i) left_top[1] = min(left_top[1],j) right_down[0] = max(right_down[0],i+1) right_down[1] = max(right_down[1],j+1) r.. 2023. 6. 23.
[프로그래머스] 공원 산책 def solution(park, routes): row_l = len(park) col_l = len(park[0]) start_location = (0,0) route_list = [] area = [[""]*col_l for _ in range(row_l)] for i,row in enumerate(park): for j,item in enumerate(row): area[i][j] = item if item == "S": start_location = [i,j] for i in routes: route_list.append((i[0],int(i[2]))) for i in route_list: d, n = i[0], i[1] exist_x = False if d == "N": if (start_lo.. 2023. 6. 23.
[프로그래머스] 추억점수 def solution(name, yearning, photo): answer = [] # {'may': 5, 'kein': 10, 'kain': 1, 'radi': 3} name_dict = {name:yearning[i] for i,name in enumerate(name)} for i,row in enumerate(photo): total = 0 for j,col in enumerate(row): if name_dict.get(col) != None: total += name_dict[col] answer.append(total) return answer 이번 문제는 사전 자료형을 사용하여 간단하게 풀 수 있던 문제였다. 여기서 기억해야 할 점은 사전 자료형에서 어떠한 값을 접근할 때 get() 메.. 2023. 6. 23.
[프로그래머스] 달리기 경주 def solution(players, callings): # {'mumu': 0, 'soe': 1, 'poe': 2, 'kai': 3, 'mine': 4} player_dict = {player:rank for rank,player in enumerate(players)} # {0: 'mumu', 1: 'soe', 2: 'poe', 3: 'kai', 4: 'mine'} rank_dict = {rank:player for rank,player in enumerate(players)} for call in callings: call_index = player_dict[call] prev_index = call_index -1 player_dict[rank_dict[call_index]], player_di.. 2023. 6. 23.