티스토리 뷰


[도착하기 직전의 이동거리는 반드시 1광년] 이 조건을 보지 못해 잠시 헤맸다.

이 조건대로 규칙을 살펴보면 아래와 같은 규칙이 나온다.


순서

최대로 이동하는 수열

최대 이동 횟수

최대 거리

1

 1

1

1

2

 121

3

4

3

 12321

5

9

4

 1234321

7

16

5

 123454321

9

25

N

 123...(N-1)N(N-1)...321

 N * 2 - 1

N^2


먼저 거리 I를 구하기 위해 목표 위치 E에서 현재 위치 S를 뺀다. 

이후 N을 찾기 위해 sqrt()를 사용해 I의 제곱근을 구해 N에 저장한다.

마지막으로 N에 2를 곱한 값을 ceil()을 사용해 올림 하고 1을 빼면 이동 횟수가 나온다.

문제풀이

from math import sqrt,ceil

for T in range(int(input())):
    S, E = map(int,input().split())
    I = E - S
    N = sqrt(I)
    print(ceil(2 * N) - 1)


'문제 풀이 > Baekjoon Online Judge' 카테고리의 다른 글

[python3] 2775번 부녀회장이 될테야  (0) 2019.04.19
[python3] 10250번 ACM 호텔  (0) 2019.04.19
[python3] 1475번 방 번호  (0) 2019.04.18
[python3] 5622번 다이얼  (0) 2019.04.17
[python3] 2108번 통계학  (0) 2019.04.12
댓글
«   2024/12   »
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 31
Total
Today
Yesterday