프로그래머스(Python) 풀이 115

프로그래머스(Python) 42895번 N으로 표현 풀이

Python으로 구현한 42895번 N으로 표현 문제 풀이입니다. https://programmers.co.kr/learn/courses/30/lessons/42895 코딩테스트 연습 - N으로 표현 programmers.co.kr def solution(N, number) : answer = -1 dp = [[] for _ in range(9)] for i in range(1, 9) : dp[i].append(int(str(N) * i)) for j in range(1, i) : for num1 in dp[j] : for num2 in dp[i-j] : dp[i].append(num1 + num2) dp[i].append(num1 - num2) dp[i].append(num1 * num2) if num..

프로그래머스(Python) 87946번 피로도 풀이

Python으로 구현한 87946번 피로도 문제 풀이입니다. https://programmers.co.kr/learn/courses/30/lessons/87946 코딩테스트 연습 - 피로도 XX게임에는 피로도 시스템(0 이상의 정수로 표현합니다)이 있으며, 일정 피로도를 사용해서 던전을 탐험할 수 있습니다. 이때, 각 던전마다 탐험을 시작하기 위해 필요한 "최소 필요 피로도"와 던 programmers.co.kr def solution(k, dungeons) : return search(k, dungeons, 0) def search(k, dungeons, cnt) : cnt_list = [cnt] for i in range(len(dungeons)) : if dungeons[i][0]

프로그래머스(Python) 12978번 배달 풀이

Python으로 구현한 12978번 배달 문제 풀이입니다. https://programmers.co.kr/learn/courses/30/lessons/12978 코딩테스트 연습 - 배달 5 [[1,2,1],[2,3,3],[5,2,2],[1,4,2],[5,3,1],[5,4,2]] 3 4 6 [[1,2,1],[1,3,2],[2,3,2],[3,4,3],[3,5,2],[3,5,3],[5,6,1]] 4 4 programmers.co.kr from collections import defaultdict, deque def solution(n, road, k) : graph = defaultdict(list) for v1, v2, dis in road : graph[v1].append((v2, dis)) graph[..

프로그래머스(Python) 86052번 빛의 경로 사이클 풀이

Python으로 구현한 86052번 빛의 경로 사이클 문제 풀이입니다. https://programmers.co.kr/learn/courses/30/lessons/86052 코딩테스트 연습 - 빛의 경로 사이클 각 칸마다 S, L, 또는 R가 써져 있는 격자가 있습니다. 당신은 이 격자에서 빛을 쏘고자 합니다. 이 격자의 각 칸에는 다음과 같은 특이한 성질이 있습니다. 빛이 "S"가 써진 칸에 도달한 경우, 직진 programmers.co.kr # 상 우 하 좌 dx = [-1, 0, 1, 0] dy = [0, 1, 0, -1] def move(x, y, dir, pos) : if pos == 'L' : # 좌로 가는데 L을 만나면 하, 우로 가는데 L을 만나면 상 dir = (dir - 1) % 4 e..

프로그래머스(Python) 72411번 메뉴 리뉴얼 풀이

Python으로 구현한 72411번 메뉴 리뉴얼 문제 풀이입니다. https://programmers.co.kr/learn/courses/30/lessons/72411 코딩테스트 연습 - 메뉴 리뉴얼 레스토랑을 운영하던 스카피는 코로나19로 인한 불경기를 극복하고자 메뉴를 새로 구성하려고 고민하고 있습니다. 기존에는 단품으로만 제공하던 메뉴를 조합해서 코스요리 형태로 재구성해서 programmers.co.kr from itertools import combinations from collections import Counter def solution(orders, course) : answer = [] data = [] for order in orders : # 문자열 정렬 order = sorted(o..

프로그래머스(Python) 77885번 2개 이하로 다른 비트 풀이

Python으로 구현한 77885번 2개 이하로 다른 비트 문제 풀이입니다. https://programmers.co.kr/learn/courses/30/lessons/77885 코딩테스트 연습 - 2개 이하로 다른 비트 programmers.co.kr def solution(numbers) : answer = [] for number in numbers : bin_num = list('0' + bin(number)[2:]) index = ''.join(bin_num).rfind('0') bin_num[index] = '1' if number % 2 == 1 : bin_num[index+1] = '0' answer.append(int(''.join(bin_num), 2)) return answer 1. ..

프로그래머스(Python) 86971번 전력망을 둘로 나누기 풀이

Python으로 구현한 86971번 전력망을 둘로 나누기 문제 풀이입니다. https://programmers.co.kr/learn/courses/30/lessons/86971 코딩테스트 연습 - 전력망을 둘로 나누기 9 [[1,3],[2,3],[3,4],[4,5],[4,6],[4,7],[7,8],[7,9]] 3 7 [[1,2],[2,7],[3,7],[3,4],[4,5],[6,7]] 1 programmers.co.kr from collections import deque, defaultdict def bfs(start, cut, wires, n, wire_dict) : count = 0 visited = [False] * (n + 1) q = deque([start]) visited[start] = Tr..

프로그래머스(Python) 84512번 모음 사전 풀이

Python으로 구현한 84512번 모음 사전 문제 풀이입니다. https://programmers.co.kr/learn/courses/30/lessons/84512 코딩테스트 연습 - 모음사전 사전에 알파벳 모음 'A', 'E', 'I', 'O', 'U'만을 사용하여 만들 수 있는, 길이 5 이하의 모든 단어가 수록되어 있습니다. 사전에서 첫 번째 단어는 "A"이고, 그다음은 "AA"이며, 마지막 단어는 "UUUUU"입니 programmers.co.kr from itertools import product def solution(word) : target = ['A', 'E', 'I', 'O', 'U'] arr = [] for i in range(1, 6) : arr += list(map("".join..

프로그래머스(Python) 68936번 쿼드압축 후 개수 세기 풀이

Python으로 구현한 68936번 쿼드압축 후 개수 세기 문제 풀이입니다. https://programmers.co.kr/learn/courses/30/lessons/68936 def solution(arr) : answer = [0, 0] len_value = len(arr) def func(x, y, len_v) : temp = arr[x][y] for i in range(x, x + len_v) : for j in range(y, y + len_v) : if arr[i][j] != temp : temp_len_v = len_v // 2 func(x, y, temp_len_v) func(x, y + temp_len_v, temp_len_v) func(x + temp_len_v, y, temp_len..

프로그래머스(Python) 70129번 이진 변환 반복하기 풀이

Python으로 구현한 70129번 이진 변환 반복하기 문제 풀이입니다. https://programmers.co.kr/learn/courses/30/lessons/70129 코딩테스트 연습 - 이진 변환 반복하기 programmers.co.kr def solution(s) : answer = [] # 이진 변환 횟수, 제거된 0의 개수 count_bin = 0 count_zero = 0 while s != '1' : # 1번 수행 : 모든 0을 제거 count_zero += s.count('0') s = s.replace('0', '') # 2번 수행 len_value = len(s) # 진법 변환 s = bin(len_value)[2:] count_bin += 1 answer.append(count_..