# Coding/# 백준

[백준 / 1393] 음하철도 구구팔 - Python

강현들 2022. 3. 11. 11:11
728x90
반응형

https://www.acmicpc.net/problem/1393

 

1393번: 음하철도 구구팔

첫번째 줄에는 xs와 ys가 주어진다. 이는 정류장의 위치가 (xs, ys)임을 의미한다. 두번째 줄에는 xe, ye, dx, dy가 주어진다. 이는 현재 열차 위치가 (xe, ye)이고, 열차가 1초마다 x가 증가하는 방향으로

www.acmicpc.net

 

<전체 코드>

x_s, y_s = map(int, input().split())
x_e, y_e, dx, dy = map(int, input().split())


if dx != 0 and dy != 0:
    for i in range(1, min(abs(dx)+1, abs(dy)+1)):
        if abs(dx) % i == 0 and abs(dy) % i == 0:
            gcf = i
    dx, dy = dx//gcf, dy//gcf

if dx == 0:
    if dy > 0:
        dy = 1
    elif dy < 0:
        dy = -1

if dy == 0:
    if dx > 0:
        dx = 1
    elif dx < 0:
        dx = -1


pos_answer = float('inf')
while True:
    dis = (x_s-x_e)**2 + (y_s-y_e)**2
    if pos_answer > dis:
        pos_answer = dis
    else:
        break

    x_e += dx
    y_e += dy

print(x_e-dx, y_e-dy)
728x90
반응형