본문 바로가기
Algorithm

[구현/수학] 백준 1598 꼬리를 무는 숫자 나열 - 파이썬(Python)

by jangThang 2022. 11. 5.
반응형

백준 온라인 저지

 

[ Contents ]

     

     

    1. 문제 (링크 참조)

     

    1598번: 꼬리를 무는 숫자 나열

    첫째 줄에 원숭이가 생각한 두 개의 자연수가 주어진다. 각 수는 10,000,000 이하이다.

    www.acmicpc.net

     

     

     

    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을 빼고 가로와 세로의 길이를 계산합니다.

     

    star가 되고나서 Tistory

    반응형

    댓글