https://www.acmicpc.net/problem/25418
25418번: 정수 a를 k로 만들기
7(A), 8(연산 1), 9(연산 1), 18(연산 2), 19(연산 1), 38(연산 2), 76(연산 2), 77(연산 1)이 최소 연산이므로 정답은 7이다.
www.acmicpc.net
나의 코드
a, k = map(int, input().split())
dp = [0]*(k+1)
for i in range(a+1, k+1):
dp[i] = dp[i-1]+1
if i % 2 == 0 and i//2 >= a:
dp[i] = min(dp[i], dp[i//2]+1)
print(dp[k])
결과

DP로 풀어보겠다고 꾸역꾸역 1시간 반을 고생했넼ㅋㅋㅋㅋㅋㅋㅋ 계속 안나왔던 이유는 i//2 >= a를 넣지 않아서였다. 그걸 넣으니 바로 해결! 그래도 DP로 푸는 법 이제는 조금 알 것 같다!
'스터디 1일 1커밋' 카테고리의 다른 글
| 240417 [BOJ/백준] 9625. BABBA (0) | 2024.04.17 |
|---|---|
| 240416 [BOJ/백준] 30892. 상어 키우기 (0) | 2024.04.16 |
| 240414 [BOJ/백준] 4963. 섬의 개수 (0) | 2024.04.14 |
| 240411 [BOJ/백준] 14888. 연산자 끼워넣기 (0) | 2024.04.11 |
| 240410 [BOJ/백준] 1743. 음식물 피하기 (0) | 2024.04.10 |