반응형
[ Contents ]
1. 문제 (링크 참조)
2. 문제 풀이
위와 같이 나열된 숫자판에서, 두 숫자 간의 직각 거리를 구하는 문제입니다. 여기서 '직각 거리'란 떨어진 가로와 세로축의 거리를 합한 걸 말합니다.
위 예제는 가로로 '6', 세로로 '2'만큼 떨어져있고, 직각 거리는 8입니다.
3. 코드
import sys
input = sys.stdin.readline
# 입력
a, b = map(int, input().split())
# 직각 거리 계산
row = abs(((b-1)//4 + 1) - ((a-1)//4 + 1))
col = abs(((b-1)%4) - ((a-1)%4))
print(row+col)
세로가 4이므로, 4로 나누면 row가 나오고 4로 나눈 나머지가 col이 됩니다. 하지만 시작 번호가 1이므로 col 거리를 구하는 데에 문제가 됩니다.
1 |
2 |
3 |
0 |
3 다음에 4가 아니라 0이 됩니다. 따라서, 1이 아니라 0부터 시작해야 합니다. 이를 임의로 만들어주기 위해서 입력된 숫자에서 1을 빼고 가로와 세로의 길이를 계산합니다.
반응형
'Algorithm' 카테고리의 다른 글
[구현/문자열] 백준 25083 새싹 - 파이썬(Python) (0) | 2022.11.07 |
---|---|
[그리디/Greedy] 백준 1758 알바생 강호 - 파이썬(Python) (0) | 2022.11.06 |
[구현/수학] 백준 4635 Speed Limit - 파이썬(Python) (0) | 2022.11.04 |
[구현/문자열] 백준 1284 집 주소 - 파이썬(Python) (0) | 2022.11.03 |
[탐색/밸만포드] 백준 1865 웜홀 - 파이썬(Python) (0) | 2022.11.02 |
댓글