일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 백준 2512번
- 다이나믹 프로그래밍
- 그래프
- 백준 1331번
- 백준 18310번
- 백준 3085번
- react
- 자바
- 그리디
- 백준 17451번
- java_programming
- 백준 16918번
- AWS
- 백준 1253번
- Python
- 모각코
- 머신러닝과 딥러닝
- HUFS 모각코 캠프
- 알고리즘
- 백준
- ubuntu
- 다이나믹프로그래밍
- SQL
- 백준 1987
- MySQL
- javascript
- 깃헙
- 명품자바
- 백준 15787번
- SWEA 15612번
Archives
- Today
- Total
차곡차곡
[BOJ/Python] 백준 15787번 - 기차가 어둠을 해치고 은하수를 본문
백준 #15787 기차가 어둠을 해치고 은하수를
from collections import deque
import sys
input = sys.stdin.readline
n, m = map(int, input().split()) # n: 기차 수, m: 명령 수
order = list(tuple(map(int, input().split())) for _ in range(m))
train = [deque(0 for _ in range(20)) for _ in range(n)]
for i in range(m):
if order[i][0] == 1:
train[order[i][1]-1][order[i][2]-1] = 1
elif order[i][0] == 2:
train[order[i][1]-1][order[i][2]-1] = 0
elif order[i][0] == 3:
train[order[i][1]-1].rotate(1)
train[order[i][1]-1][0] = 0
else:
train[order[i][1]-1].rotate(-1)
train[order[i][1]-1][-1] = 0
output_train = []
for i in range(n):
if train[i] not in output_train:
output_train.append(train[i])
print(len(output_train))
사람이 없는 곳은 0, 있는 곳은 1로 표현한 기차 리스트 준비
- 명령 1 : 가리키는 위치의 값 1로 변경
- 명령 2 : 가리키는 위치의 값 0으로 변경
- 명령 3 : 뒤쪽 방향으로 한 칸씩 이동 (각 기차 리스트를 데큐로 만들어서 rotate 이용함)
- 명령 4 : 앞쪽 방향으로 한 칸씩 이동
rotate 말고 간단하게 이동하는 방법
# 뒤로 이동
train[order[i][1]-1].insert(0, 0)
train[order[i][1]-1].pop()
# 앞으로 이동
train[arr[1]-1].pop(0)
train[arr[1]-1].append(0)
'CS > Algorithm' 카테고리의 다른 글
[BOJ/Python] 백준 5430번 - AC (0) | 2022.11.06 |
---|---|
[BOJ/Python] 백준 1331번 - 나이트 투어 (1) | 2022.11.06 |
[BOJ/Python] 백준 2468번 - 안정 영역 (1) | 2022.09.20 |
[BOJ/Python] 백준 18310번 - 안테나 (0) | 2022.09.19 |
[BOJ/Python] 백준 3085번 - 사탕 게임 (0) | 2022.09.18 |
Comments