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)
👩💻 회고
난 애석하게도 문제를 잘못 이해해서 한 쪽에만 더하는 줄 알고 애를 먹었다. 번갈아가면서 더했어야 했는데...