본문 바로가기
Beakjoon&프로그래머스/파이썬

[백준/파이썬]1011번 Fly me to the Alpha Centauri

by 현장 2021. 11. 2.

-코드

for _ in range(int(input())):
    x, y = map(int, input().split())
    l = y - x
    cnt = 0
    num = 0
    r = 0
    while 1:
        if r >= l:
            break
        num += 1
        if num % 2 == 1:
            cnt += 1
        r += cnt
    print(num)

문제를 이해를 못해서 게시판과 구글을 찾아보니 거리가 늘어날 수록 장치 발동 횟수가

위 표와 같이 (1, 1), (2, 2), (3, 3) 과 같은 형식으로 2번씩 반복하고 장치 사용 횟수(cnt) 변하게 되는데 그래서 이것을 해결하기 위해 반복 수를 num으로 선언하고, 홀수의 반복 수 묶음 마다 장치 사용 횟수(cnt)가 커지게하여 r에 장치 사용 횟수(cnt)만큼씩 더해주면 장치 사용 횟수(cnt)를 2번 씩 더해주고 1이 올라가면서 해당 반복 수 안에 들어가게 되면 break를 통해 num을 출력하게 해서 해결을 하였습니다.