본문 바로가기

코딩테스트/Python

[Python] 백준 #15787 - 기차가 어둠을 헤치고 은하수를

문제


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

 

15787번: 기차가 어둠을 헤치고 은하수를

입력의 첫째 줄에 기차의 수 N(1 ≤ N ≤ 100000)과 명령의 수 M(1 ≤ M ≤ 100000)가 주어진다. 이후 두 번째 줄부터 M+1번째 줄까지 각 줄에 명령이 주어진다. 

www.acmicpc.net

 

 

풀이


n,m = map(int,input().split())

train = [[0 for _ in range(20)] for _ in range(n)]

for i in range(m):
    arr = list(map(int,input().split()))
    if arr[0] == 1:
        train[arr[1]-1][arr[2]-1] = 1
    elif arr[0]==2:
        train[arr[1]-1][arr[2]-1] = 0
    elif arr[0]==3:
        train[arr[1]-1].insert(0,0)
        train[arr[1]-1].pop()
    else:
        train[arr[1]-1].pop(0)
        train[arr[1]-1].append(0)

tmp = []
for t in train:
    if t not in tmp:
        tmp.append(t)
print(len(tmp))

 

사람 존재 여부를 1,0으로 구분한다.

조건에 맞춰 수행하면된다.