https://www.acmicpc.net/problem/1011
단순한 계산 문제이다.
#백준 1011: Fly me to the Alpha Centauri
t = int(input()) #테스트 케이스의 개수
for _ in range(t):
x, y = map(int, input().split())
distance = y - x
count = 0
move = 1 #이동 횟수
move_sum = 0 #이동한 거리
while move_sum < distance: #이동한 거리가 총 거리보다 작다면
count += 1 #이동 횟수 증가
move_sum += move #이동한 거리 증가
if count % 2 == 0: #이동 횟수가 2의 배수일 때
move += 1 #이동 거리 증가
print(count)
풀이법 : 수학
문제에서 유의해야 할 점은 (핵심 포인트는) 이동 횟수가 짝수일 때 마다 이동할 수 있는 거리가 1광년씩 늘어난다는 점이다. 이를 제외하고 문제 풀이는 간단한 편이다. 이동회수와 이동한 거리를 상수값으로 두고, 값을 하나씩 증가시켜가면서 최종 횟수를 계산하면 된다.
반응형
'IT > Algorithm' 카테고리의 다른 글
[python] 백준 1904: 01타일 (0) | 2025.03.16 |
---|---|
[python] 백준 1024: 수열의 합 (0) | 2025.03.15 |
[python] 백준 1019 : 책 페이지 (0) | 2025.03.14 |
[c] 구조체를 정의하고, 데이터들을 입력받아 결과값을 산출하기 (0) | 2023.12.13 |
[c] 연산 구조체를 정의하고, 변수를 생성하여 구조체를 반환하기 (0) | 2023.12.12 |