티스토리 뷰
728x90
반응형
문제
코드
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
반응형
'알고리즘 > 백준' 카테고리의 다른 글
[백준] 1436번 영화감독 숌 (Python) (0) | 2021.03.12 |
---|---|
[백준] 4948번 베르트랑 공준 (Python) (0) | 2021.03.12 |
[백준] 2839번 설탕배달 (Python) (0) | 2021.03.12 |
[백준] 1316번 그룹단어체커 (Python) (0) | 2021.03.12 |
[백준] 7576번 토마토 (Python) (0) | 2021.03.11 |
댓글