풀이


n번의 관찰 속에서 소의 번호와 위치가 주어질 때 소들이 총 몇번 길을 건넜는 지 알아내는 문제이다.

각 소들의 숫자와 위치를 2차원 배열에 저장해준다.

소들의 숫자는 인덱스로 구분되며 [-1, 0] 로 초기화한다.

처음 관측이 된 소는 [관측된 위치, 이동횟수] 로 바뀌게된다.

다음 관측된 위치가 기존 관측된 위치와 다를 경우 이동횟수 +1 을 해준다.

모든 관측이 끝난 후 소들의 위치값을 저장해 둔 리스트의 합을 출력해준다.

소스코드


# 소가 길을 건너간 이유 1
import sys
input = sys.stdin.readline
 
cow = [[-1]*10, [0]*10]
 
for _ in range(int(input())):
    n, d = map(int, input().split())
    if cow[0][n-1] == -1:
        cow[0][n-1] = d
        continue
    if cow[0][n-1] != d:
        cow[0][n-1] = d
        cow[1][n-1] += 1
        continue
 
print(sum(cow[1]))

References