<aside> 💡 수학
</aside>
Memory 128832KB Time 176ms Code Length 496B
import sys
input = sys.stdin.readline
def n_t(d):
i = 1
sum = 0
while(True):
sum+=i
if(sum >= d/2):
break
i += 1
sum -= i
diff = d/2 - sum
ints = []
for j in range(i):
ints.append(j+1)
if(diff*2 in ints):
result = i*2-1
else:
result = i*2
return result
n = int(input())
d = []
for i in range(n):
x,y = map(int,input().split())
d.append(y-x)
for i in range(len(d)):
print(n_t(d[i]))
이 코드는 두 점 사이의 거리를 입력받아 이동해야 하는 최소 횟수를 출력하는 코드이다.
먼저, sys.stdin.readline
을 이용해 입력을 받는다. 이후 n_t
함수에서는 입력받은 거리를 반으로 나눠 이동해야 하는 거리를 계산한다. 이 때, 이동할 거리가 정수가 아니라면 이동 횟수를 하나 늘린다.
그 다음에는 각 이동 횟수에 대해 이동해야 하는 거리를 계산하고, 이를 리스트에 저장한다. 만약 이동해야 하는 거리가 리스트에 있다면, 이동 횟수는 i*2-1
이고, 그렇지 않다면 i*2
이다.
마지막으로, 입력받은 모든 거리에 대해 이동 횟수를 계산하고 출력한다.