Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 코드업
- 파이썬
- C++
- 일상
- 기초100제
- 알고리즘
- react-redux
- 토이프로젝트
- 정렬
- 공부
- OS
- 분할메모리할당
- 백준
- error
- 타입스크립트
- 리덕스장바구니
- codeup
- js to ts
- 협업
- CPU 스케줄링
- react
- memory
- Redux
- web
- Operating System
- Spring
- 자료구조
- 스프링
- 프로그래머스
- Java
Archives
- Today
- Total
감자튀김 공장🍟
[백준/1463] 1로 만들기 (with 파이썬) 본문
반응형
✔ 문제
✔ 풀이
import sys
input = sys.stdin.readline
n = int(input())
dp = [0] * (n+1)
for i in range(2, n+1):
dp[i] = dp[i-1] + 1 # n-1 연산, 횟수 저장 (+1)
if i % 3 == 0:
dp[i] = min(dp[i], dp[i//3] + 1) # 1을 더하는 이유: dp는 계산 값이 아닌 횟수를 저장
if i % 2 == 0:
dp[i] = min(dp[i], dp[i//2] + 1)
print(dp[n])
✔ 후기
만만하게 봤다가 큰 코 다쳤지요..?
if continue ~ elif continue 했다가 지맘대로 돌아가서 당황했다...
사실 맞는 코드도 아니여서 적지는 않았지만... (대충 적어본거라 요구하는 문제에 맞는 구현도 아니었음)
https://jae04099.tistory.com/199
이 분 블로그 보면서 그리디랑 동적 계획법 차이도 얼떨결에 배웠다!
그리디는 반례가 없어야 하고 동적은 모든 가능성을 두고 그 안에서 해당되는 조건을 골라야하는 것이다.
생각해보면 동적 문제를 풀떄 항상 min 또는 max 함수를 사용했기 때문에 아 그렇구나~ 싶었다.
값을 dp에 저장하는 것이 아니라 횟수를 저장해야한다는 방법을 생각못해서 코드를 봐도 이해가 잘 안갔었다.
저녁에 한 번 더 풀어봐야겠다
반응형
'Algorithm > BOJ' 카테고리의 다른 글
[백준/2579] 계단 오르기 (with 파이썬) (0) | 2023.02.15 |
---|---|
[백준/1932] 정수 삼각형 (with 파이썬) (0) | 2023.02.14 |
[백준/1149] RGB거리 (with 파이썬) (0) | 2023.02.13 |
[백준/1912] 연속합 (with 파이썬) (0) | 2023.02.10 |
[백준/9461] 파도반 수열 (with 파이썬) (0) | 2023.02.09 |
Comments