해결 과정 그리디 인가 싶어서 3을 나누고, 2를 나누고, 1을 빼는 순서로 했는데 이게 아니었다. 분류가 다이나믹 프로그래밍. 다른 풀이를 참고했다. 나의 풀이 X = int(input()) dp = [0] * (X+1) for i in range(2, X+1): dp[i] = dp[i-1] + 1 if i % 3 == 0: dp[i] = min(dp[i], dp[i//3] + 1) if i % 2 == 0: dp[i] = min(dp[i], dp[i//2] + 1) print(dp[X]) 다른 풀이 이 분 블로그 글 참고 IDEA
해결 과정 그래프 내의 최단거리만 구한다면 다음과 같은 아이디어 사용. index out of bound 에러가 나서 살펴보니 N과 M을 바꿔서 작성했거나 0번 인덱스 제외하고 푸는 부분에서 실수가 있어서 고쳤다. 나의 풀이 # 9:51 - 10:43 from cmath import inf from collections import deque def kebinBaconNum(i, j, graph): visited = [False] * (len(graph) + 1) queue = deque([i]) answer = 0 while queue: answer += 1 for _ in range(len(queue)): for g in graph[queue.popleft()]: if g == j: return an..
1074번: Z 한수는 크기가 2N × 2N인 2차원 배열을 Z모양으로 탐색하려고 한다. 예를 들어, 2×2배열을 왼쪽 위칸, 오른쪽 위칸, 왼쪽 아래칸, 오른쪽 아래칸 순서대로 방문하면 Z모양이다. N > 1인 경우, 배열을 www.acmicpc.net 해결 과정 시간 제한이 적은 것을 보고 for문을 돌리면서 다 저장해놓고 후에 (x, y)를 찾는 건 아니겠구나 싶었다. 반복되는 구조이다 보니 재귀라는 것을 바로 떠올릴 수 있었고, (x, y)가 4등분 중 어느 곳에 속하는지를 먼저 판별한 뒤, count를 더해가는 방식으로 풀었다. 나의 풀이 import math def recursion(size, x, y): global count # 4등분 중 어느 위치인지 파악 if size == 1: poi..
1012번: 유기농 배추 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 www.acmicpc.net 해결 과정 cabbages를 하나씩 pop 하면서 BFS를 돌렸다. 나의 풀이 from collections import deque T = int(input()) for i in range(T): M, N, K = map(int, input().split()) cabbages = [] for i in range(K): a, b = map(int, input().split()) cabbages.append((a, b)) dx = [-1, 1, 0, 0] dy = [0, 0, ..
코딩테스트 연습 - 실패율 실패율 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스 programmers.co.kr 해결 과정 python의 Counter를 사용하여 미리 개수를 저장해두고 푼 풀이. 리팩토링 할 때는 다른 풀이를 보고 successPlayersCount를 추가적으로 뒀다. (이런 아이디어 배우자) 나의 풀이 # 리팩토링 - successPlayersCount를 두고 빼주는 아이디어. # 테스트 22 〉통과 (12.03ms, 18.3MB) from collections import Counter def solution(N, stages): counter = C..