본문 바로가기

Algorithm101

[프로그래머스] 더 맵게 더 맵게 | Lv.2 https://school.programmers.co.kr/learn/courses/30/lessons/42626 작성 코드 queue 이용한 풀이 from collections import deque def solution(scoville, K): answer = 0 queue = deque(sorted(scoville)) while queue: if queue[0] >= K: return answer elif len(queue) < 2: return -1 else: a = queue.popleft() b = queue.popleft() queue.appendleft(a + 2 * b) print(queue) 문제 분류는 heap이었지만 queue로도 풀 수 있지 않을까 생각함 [.. 2023. 5. 15.
[프로그래머스] 가장 큰 수 가장 큰 수 | Lv.2 https://school.programmers.co.kr/learn/courses/30/lessons/42746 작성코드 str 정렬 후 join (실패) def solution(numbers): return "".join(sorted(list(map(str, numbers)), reverse=True)) numbers 내 원소들을 string 형으로 변환 >> 내림차순 정렬 >> join으로 하나의 string 값으로 만듦 numbers = [3, 30, 34, 5, 9] >> 9534303 3 30 34인 경우 34 3 30 순으로 해야 가장 최대의 값이 나옴 순열 이용 (실패) from itertools import permutations def solution(numbe.. 2023. 5. 14.
[프로그래머스] 단어변환 단어변환 | Lv.3 https://school.programmers.co.kr/learn/courses/30/lessons/43163 작성 코드 (통과) from collections import deque def solution(begin, target, words): # target 값이 word에 없는 경우 바로 return (속도) if target not in words: return 0 q = deque() q.append([begin]) # bfs while q: v = q.popleft() # v[-1] 이 target인 경우 답!! return if v[-1] == target: return(len(v) - 1) for word in words: # v값 영향가지 않도록 값만 복사 tm.. 2023. 5. 11.
[프로그래머스] 게임 맵 최단거리 게임 맵 최단 거리 Lv.2 https://school.programmers.co.kr/learn/courses/30/lessons/1844 작성 코드 (실패) def solution(maps): answer = 0 solutions = [] def dfs(map, i, j, depth): if i = 5 or j = 5 or map[i][j] == 0: return if (i == 4) and (j == 4) and map[i][j] == 1: return solutions.append(depth) maps[i][j] = 0 // 상하좌우 탐색 dfs(map, i + 1, j, depth + 1) dfs(map, i - 1, j, depth + 1) dfs(map, .. 2023. 5. 10.
[프로그래머스] 정수 삼각형 https://school.programmers.co.kr/learn/courses/30/lessons/43105?language=python3 작성 코드 (통과) def solution(triangle): answer = 0 top_sum = [triangle[0][0]] for idx1, t in enumerate(triangle[1:]): tmp_sum = [] for idx2, val in enumerate(t): if (idx2 == 0): tmp_sum.append(top_sum[0] + val) elif (idx2 == len(t) - 1): tmp_sum.append(top_sum[-1] + val) else: tmp_sum.append(max([top_sum[idx2 - 1] + val,.. 2023. 5. 4.
[프로그래머스] N으로 표현 https://school.programmers.co.kr/learn/courses/30/lessons/42895 작성코드 (실패) from collections import deque def solution(N, number): visited = deque([[N, 1]]) while (visited): n, depth = visited.popleft() if n == number: return depth if depth > 8: return -1 d = depth + 1 visited.extend([[10 * n + N, d], [n + N, d], [n - N, d], [n * N, d], [n // N, d]]) 테스트 케이스 일부 통과 88 * 8 - 88 / 8 에서 뺄셈이 제일 나중인데 그걸.. 2023. 5. 3.
반응형