본문 바로가기

알고리즘/python

[python/파이썬] 백준 14467 소가 길을 건너간 이유 1

반응형

[문제 출처] 

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

 

14467번: 소가 길을 건너간 이유 1

3번 소는 위치 1, 0, 1에서 관찰되었으므로 길을 최소 두 번 건넜음을 확인할 수 있다. 4번 소도 길을 한 번 건넜으며, 나머지 소는 길을 건넌 기록이 확인되지 않는다.

www.acmicpc.net

 

 

[문제 풀이]

 

현재 소의 위치를 나타내는 리스트인 now와

각 소별로 몇 번 건넜는지 횟수를 저장하는 리스트 cows를 사용한다.

 

now를 처음엔 -1로 초기화하고 입력을 받았을 때 -1이 아닌 경우 현재 값과 입력받은 값이 다르다면 소가 길을 건넌 것으로 간주한다.

출력은 모든 소가 길을 건넌 수를 합친 값으로 한다.

import sys
input = sys.stdin.readline

n = int(input())

cows = [0 for _ in range(n+1)]
now = [-1 for _ in range(n+1)]
for i in range(n):
    idx, loc = map(int, input().split())
    if now[idx] == -1:
        now[idx] = loc
    elif now[idx] != loc:
        cows[idx] += 1
        now[idx] = loc

print(sum(cows))
반응형