Stay Hungry Stay Foolish

SWEA

[SWEA] 21425. += (Python/D2)

dev스카이 2024. 10. 16. 15:20

[문제 링크] 👉 https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AZD8K_UayDoDFAVs


설명

현재 x에 저장된 값은 A, y에 저장된 값은 B이다. 

당신은 “x += y” 또는 “y += x” 연산을 원하는 순서대로 원하는 만큼 수행하여, x나 y 둘 중 하나 이상에 저장된 값이 N 초과가 되게 하려고 한다. 

연산을 합쳐서 최소 몇 번 수행해야 하는지 계산하는 프로그램을 작성하라.

 

풀이

이 문제의 핵심은 작은 수에 큰 수를 더하는 것이다.

a가 더 작으면 a에 b를 더하고, b가 더 작으면 b에 a를 더한다.

 

Solution

test_case = int(input())
for _ in range(test_case):
    a, b, n = map(int, input().split())
    cnt = 0
    while a <= n and b <= n:
        if a < b:
            a += b
        else:
            b += a
        cnt += 1
    print(cnt)

 


👩‍💻 회고

난 애석하게도 문제를 잘못 이해해서 한 쪽에만 더하는 줄 알고 애를 먹었다. 번갈아가면서 더했어야 했는데...