반응형
[ Contents ]
1. 문제 (링크 참조)
2. 문제 풀이
베시와 데이지, 존의 위치(x, y)가 주어집니다. 베시는 상하좌우와 '대각선' 한 칸을 이동할 수 있고, 데이지는 상하좌우 한 칸만 이동가능합니다. 셋의 위치가 주어졌을 때, 존에게 더 빨리 가는 사람을 구해야 합니다.
2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학
먼저 상하좌우만 이동가능한 '데이지'가 필요한 이동횟수를 생각해봅시다. 존과의 x좌표 차이와 y좌표 차이만큼의 이동이 필요하고, 그 둘을 합하면 필요한 이동횟수가 나옵니다.
반면 '베시'는 대각선 이동이 가능합니다. 데이지는 x축으로 1번, y축으로 1번 가야하는 거리를 베시는 '1번'에 갈 수 있습니다. 따라서 x좌표로 이동해야하는 거리와 y좌표로 이동해야하는 거리 중 큰 값이 이동횟수가 됩니다.
Ex) x좌표로 3, y좌표로 2만큼 차이난다면
데이지가 필요한 이동횟수는 3+2 = 5이며, 반면 베시는 '대각선으로 2번 이동'하고 x좌표로 1번 이동하면 됩니다.
3. 코드
bessie = list(map(int, input().split()))
daisy = list(map(int, input().split()))
john = list(map(int, input().split()))
bessie_turn = max(abs(john[0]-bessie[0]), abs(john[1]-bessie[1])) #x축 이동과 y축 이동 중 큰 값
daisy_turn = abs(john[0]-daisy[0])+abs(john[1]-daisy[1]) #x축 이동과 y축이동의 합
if bessie_turn < daisy_turn:
print('bessie')
elif bessie_turn > daisy_turn:
print('daisy')
else:
print('tie')
반응형
'Algorithm' 카테고리의 다른 글
[구현/수학] 백준 15080 Every Second Counts - Python (0) | 2022.02.28 |
---|---|
[구현/수학] 백준 15726 이칙연산 - Python (0) | 2022.02.27 |
[구현/수학] 백준 16428 A/B - 3 - Python (0) | 2022.02.27 |
[구현/수학] 백준 14935 FA - Python (0) | 2022.02.27 |
[구현/수학] 백준 13866 팀 나누기 - Python (0) | 2022.02.27 |
댓글