BOJ/백준-1011-python

cosmos·2021년 6월 9일
2
post-thumbnail
post-custom-banner

문제📖

풀이🙏

  • 입력의 첫 줄에는 테스트케이스의 개수 T가 주어진다.
  • 각각의 테스트 케이스에 대해 현재 위치 x와 목표 위치 y가 정수로 주어지며, x는 항상 y보다 작은 값을 갖는다.
  • 이동거리의 경우의 수는 이전 작동시기가 k광년을 이동하였을 때는, k-1,k,k+1 광년만들 이동할 수 있다.
  • y지점에 도착하기 직전의 이동거리는 안정성을 위해 반드시 1광년으로 한다.
  • 각 테스트 케이스에 대해 x지점으로부터 y지점까지 정확히 도달하는데 필요한 최소한의 공간이동 장치 작동 횟수를 출력하라.

코드💻

# boj, 1011 : fly me to the alpha centauri, python3
# 수학 알고리즘
import sys
import math

def alpha_centauri(start, end):
    interval = end - start 
    n = math.sqrt(interval)
    result = int(n) * 2
    
    if n == int(n):
        result -= 1
    elif interval >= (math.pow(int(n),2) + math.pow(int(n)+1,2)) / 2:
        result += 1
        
    return result

if __name__ == '__main__':
    T = int(sys.stdin.readline())

    for i in range(T):
        x, y = map(int,sys.stdin.readline().split())
        print(alpha_centauri(x, y))

결과😎

출처 && 깃허브📝

https://www.acmicpc.net/problem/1011
github

post-custom-banner

0개의 댓글