[문제 링크] 👉 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)
👩💻 회고
난 애석하게도 문제를 잘못 이해해서 한 쪽에만 더하는 줄 알고 애를 먹었다. 번갈아가면서 더했어야 했는데...
'SWEA' 카테고리의 다른 글
[SWEA] 1284. 수도 요금 경쟁 (Python/D2) (4) | 2024.10.16 |
---|---|
[SWEA] 1945. 소인수분해 (Python/D2) (0) | 2024.10.16 |
[SWEA] 5162. 두가지 빵의 딜레마 (Python/D2) (2) | 2023.11.19 |
[SWEA] 4466. 최대 성적표 만들기 (Python/D2) (1) | 2023.11.19 |
[SWEA] 2007. 패턴 마디의 길이 (Python/D2) (0) | 2023.11.19 |