CodingTest/Baekjoon

[baekjoon] 백준 2502번(파이썬): 떡 먹는 호랑이

JunJangE 2022. 2. 6. 14:54

문제

 

2502번: 떡 먹는 호랑이

첫줄에 첫 날에 준 떡의 개수 A를 출력하고 그 다음 둘째 줄에는 둘째 날에 준 떡의 개수 B를 출력한다. 이 문제에서 주어진 D, K에 대해서는 항상 정수 A, B (1≤A≤B)가 존재한다. 

www.acmicpc.net

알고리즘

- 반복문을 통해 조건에 맞는 모든 경우를 탐색한다.

- 할머니가 호랑이를 처음 만난 날에  준 떡의 개수 A, 그 다음 날에 호랑이에게 준 떡의 개수 B => 1≤A≤B이다.  

- d일까지 할머니가 떡을 주는 경우를 탐색하고 d 일어날 호랑이에게 준 떡이 k 개라면 A와 B를 출력하고 종료한다.

코드

import sys

d, k = map(int, sys.stdin.readline().split())

# 반복문을 통해 조건에 맞는 모든 경우를 탐색한다.(1≤A≤B)
for i in range(1, 100000):
    for j in range(1, 100000):
        dp = [0] * (d + 1)
        dp[1] = i
        dp[2] = j

        # d일까지 할머니가 떡을 주는 경우를 탐색
        for l in range(3, d + 1):
            dp[l] = dp[l - 1] + dp[l - 2]

        # 마지막 날에 할머니가 떡을 준 개수가 k개라면
        # 첫 번째날과 두 번째 날에 떡을 준 개수를 출력하고 종료한다.
        if dp[-1] == k:

            print(dp[1])
            print(dp[2])
            exit()

github

 

GitHub - junjange/CodingTest: 내가 푼 코딩 테스트 문제와 해결법

내가 푼 코딩 테스트 문제와 해결법. Contribute to junjange/CodingTest development by creating an account on GitHub.

github.com