티스토리 뷰

728x90
반응형

문제

www.acmicpc.net/problem/1011

 

1011번: Fly me to the Alpha Centauri

우현이는 어린 시절, 지구 외의 다른 행성에서도 인류들이 살아갈 수 있는 미래가 오리라 믿었다. 그리고 그가 지구라는 세상에 발을 내려 놓은 지 23년이 지난 지금, 세계 최연소 ASNA 우주 비행

www.acmicpc.net

 

코드

import math
T=int(input())
for _ in range(T):
    x, y = map(int, input().split())
    distance = y-x
    if distance <= 3:
        print(distance)
    else:
        n = int(math.sqrt(distance))
        if distance == n ** 2:
            print(2*n-1)
        elif n ** 2 < distance <= n ** 2 +n:
            print(2*n)
        else:
            print(2*n+1)


# 거리  이동   횟수             거리의 제곱근 = n
#  1     1      1
#  2     11     2
#  3     111    3
#-------------------------------------------------- n=2인 경우
#  4     121    3       2*2-1 => 3횟수   거리가 => 2^n일경우
#----------------------
#  5    1211    4       2*2   => 4횟수   거리가 => 2^n 초과 2^n+2이하 까지
#  6    1221    4       2*2   => 4횟수
#----------------------
#  7    12211   5       2*2+1 => 5횟수   거리가 => 그 이외의 경우
#  8    12221   5       2*2+1 => 5횟수
#----------------------------------------------------n=3인 경우
#  9    12321   5       2*3-1 => 5횟수
#-----------------------
# 10    123211  6       2*3   => 6횟수
# 11   123221   6       2*3   => 6횟수
# 12   123321   6       2*3   => 6횟수
#-----------------------
# 13   1233211  7       2*3+1 => 7횟수
# 14   1233221  7       2*3+1 => 7횟수
# 15   1233321  7       2*3+1 => 7횟수
#-----------------------------------------------------n=4인 경우
# 16   1234321  8
반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30