728x90
https://www.acmicpc.net/problem/15787
구현문제이다 실버 2..
하라는대로 명령처리를 해준다음에 기차를 for문을 통해서 하나씩 string으로 만들고, 이전에 등장했는지 count해준다
3번명령 4번명령을 처음에는 for문으로 구현하다가 생각해보니까 문자열슬라이싱을 쓰는 것이 파이썬이기도 하고 더 빠를것 같아서 개선했다
놀랍게도 pypy python 모두 통과한다 ㅋㅋ (파이썬은 조금 힘겹게 통과하긴함 ㅎ)
n, m = map(int, input().split())
trains = [[0] * 20 for _ in range(n)] # 0 : 빈자리, 1: 승객 o
patterns = []
answer = 0
for _ in range(m):
data = list(map(int, input().split()))
if data[0] == 1:
i, j = data[1], data[2]
if trains[i-1][j-1] == 0:
trains[i-1][j-1] = 1
elif data[0] == 2:
i, j = data[1], data[2]
if trains[i-1][j-1] == 1:
trains[i-1][j-1] = 0
elif data[0] == 3:
i = data[1]-1
trains[i] = [0] + trains[i][:19]
elif data[0] == 4: # 4 앞으로 한칸
i = data[1]-1
trains[i] = trains[i][1:]+[0]
# 패턴 확인
for i in range(n):
train = str(trains[i])
if train not in patterns:
answer += 1
patterns.append(train)
else:
continue
print(answer)
728x90
'Algorithm (PS)' 카테고리의 다른 글
[백준] 2294 동전 2 Python (DP문제) (0) | 2022.11.12 |
---|---|
[프로그래머스] 행렬 테두리 회전하기 Python (0) | 2022.11.11 |
[백준] 21278번 호석이 두 마리 치킨 Python (BFS풀이, 플로이드워셜) (0) | 2022.11.09 |
[프로그래머스] 여행경로 Python (파이썬) (0) | 2022.11.09 |
[백준] 15927 파이썬 - 회문은 회문아니야!! (0) | 2022.11.05 |