반응형
리뷰
버림이라는 조건이 까다로운 문제였다. 4달전 dp를 공부하기 전에는 while로 시도했다가 틀렸었다.
문제 풀이
- y의 범위는 0~10이기에 dp를 11개의 리스트로 생성해 준다.
- 5 이하의 기본 케이스들을 초기화 해준다.
- y가 0일땐 h값이 그대로 출력된다.
- y가 1일땐 h * 1.05을 정수형으로 내림
- y가 2일땐 y가 1일때 값 * 1.05을 정수형으로 내림
- y가 3일땐 h * 1.20을 정수형으로 내림
- y가 4일땐 y가 1일때 값 * 1.20을 정수형으로 내림
- 이후의 값은 for문을 통해 반복처리 해주면 된다.
참고 사항
y가 4일때의 케이스가 중요하다, y가 3일때의 값 * 1.05보다 y가 1일때의 값 * 1.20이 더 크다 (왜틀린지 몰랐으나 계산기를 돌려보고 깨달았다.)
정답 코드
def q19947():
# 백준 19947번 파이썬 투자의 귀재 배주형
h, y = map(int, input().split())
dp = [0 * i for i in range(11)]
dp[0] = h
dp[1] = int(h * 1.05)
dp[2] = int(dp[1] * 1.05)
dp[3] = int(h * 1.20)
dp[4] = int(dp[1] * 1.20)
for i in range(5, y + 1):
dp[i] = int(max(dp[i - 5] * 1.35, dp[i - 3] * 1.20, dp[i - 1] * 1.05))
print(dp[y])
q19947()
728x90
반응형
'알고리즘 공부 > 파이썬(Python)' 카테고리의 다른 글
백준 2577번 숫자의 개수 파이썬 (0) | 2024.07.05 |
---|---|
백준 1110번 더하기 사이클 파이썬 (0) | 2024.07.05 |
SWEA 2805번 D3 농작물 수확하기 파이썬 (0) | 2024.07.02 |
백준 27396번 파이썬 문자열 변환과 쿼리 (1) | 2024.07.01 |
SWEA 1208번 D3 [S/W 문제해결 기본] 1일차 - Flatten 파이썬 (0) | 2024.06.30 |