| ์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
|---|---|---|---|---|---|---|
| 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 | 31 |
- ์ธ๋๋ณ๊ฐ๋น์ง์ปฌ๋ ํฐ
- ํค ์ข ๋ฅ
- latent factor
- ์๊ณ ๋ฆฌ์ฆ
- ์ ์ฌ์์๋ชจ๋ธ
- DROPTABLE
- ์ฌ์ดํท๋ฐ
- ๋ฌธ์์ด
- SQLDDL
- ๋ถ๊ฝ๋ฐ์ดํฐ์
- RENAMETABLE
- knn_classify
- sklearn
- ๋ฌด๊ฒฐ์ฑ์ ์ง๋ฉ์ปค๋์ฆ
- Key ์ข ๋ฅ
- ํด๋ฆฐ์ฝ๋
- Hyperlink Graphs
- ํ
- CREATETABLE
- ์ฃผ์ฑ๋ถ ์ฐพ๊ธฐ
- ํ์ด์ฌ
- ์ปจํ ์ด๋๊ฐ์ฒด
- SQL
- Python
- TDD
- ๋ฌด๊ฒฐ์ฑ์ ์ง
- latent factor model
- ๋ฐฑ์ค
- ๋ฌด๊ฒฐ์ฑ
- ALTERTABLE
- Today
- Total
DonHurry
[Python] ๋ฐฑ์ค 3190๋ฒ - ๋ฑ ๋ณธ๋ฌธ
๐ ๋ฌธ์
3190๋ฒ: ๋ฑ
'Dummy' ๋ผ๋ ๋์ค๊ฒ์์ด ์๋ค. ์ด ๊ฒ์์๋ ๋ฑ์ด ๋์์ ๊ธฐ์ด๋ค๋๋๋ฐ, ์ฌ๊ณผ๋ฅผ ๋จน์ผ๋ฉด ๋ฑ ๊ธธ์ด๊ฐ ๋์ด๋๋ค. ๋ฑ์ด ์ด๋ฆฌ์ ๋ฆฌ ๊ธฐ์ด๋ค๋๋ค๊ฐ ๋ฒฝ ๋๋ ์๊ธฐ์์ ์ ๋ชธ๊ณผ ๋ถ๋ชํ๋ฉด ๊ฒ์์ด ๋๋๋ค. ๊ฒ์
www.acmicpc.net
๐ ํ์ด
deque๋ฅผ ์ด์ฉํ๋ฉด ํ ์ ์๋ ๋ฌธ์ ์ ๋๋ค. deque๋ ์ด์ค์ฐ๊ฒฐ๋ฆฌ์คํธ๋ก ๊ตฌํ๋์ด ์๊ธฐ ๋๋ฌธ์ ๋งจ ์์ด๋ ๋งจ ๋ค์ ์์๋ฅผ ์ ๊ฑฐํ๋๋ฐ O(1)์ ์๊ฐ์ด ๊ฑธ๋ฆฝ๋๋ค. ๋ฑ์ด ์ฌ๊ณผ๋ฅผ ๋จน์ ๊ฒฝ์ฐ ์์ ์๋ก์ด ์ขํ๋ฅผ ์ถ๊ฐํ๊ณ , ์ฌ๊ณผ๋ฅผ ๋จน์ง ๋ชปํ ๊ฒฝ์ฐ ๋ค์์ ์ขํ๋ฅผ ์ ๊ฑฐํด์ฃผ๋ฉด ๋ฉ๋๋ค. ๋๋จธ์ง ๋ถ๋ถ์ ๋ฌธ์ ์ ์กฐ๊ฑด์ ๋ฐ๋ผ ๊ตฌํํ๋ฉด ๋ฉ๋๋ค.
์ฃผ์ํ ์ ์ ์ฌ๊ณผ์ ์์น๊ฐ (1, 1) ๋ถํฐ ์์ํ๋ค๋ ์ ์ ๋๋ค. ๋ฌธ์ ์์ "๋งจ ์ ๋งจ ์ข์ธก(1ํ 1์ด)์๋ ์ฌ๊ณผ๊ฐ ์๋ค." ๋ผ๊ณ ๊ฐ์ ์ ์ผ๋ก ์๋ ค์ฃผ๊ณ ์์ต๋๋ค. ๋ฐ๋ผ์ ์ขํ๋ฅผ 0๋ถํฐ ์ค์ ํ๋ ๊ฒฝ์ฐ, ์ ๋ ฅ์ผ๋ก ๋ฐ์ ์ฌ๊ณผ์ ์์น์์ 1์ฉ ๋นผ์ฃผ์ด์ผ ํฉ๋๋ค.
๐ป ์ฝ๋
import sys
from collections import deque
input=sys.stdin.readline
n = int(input())
board = [[0 for _ in range(n)] for _ in range(n)]
k = int(input())
for _ in range(k):
y, x = map(int, input().split())
board[y-1][x-1] = 1 # index 0๋ถํฐ ์ค์ ํ๋ฉด -1์ฉ ํด์ฃผ๊ธฐ
direct = deque()
l = int(input())
for _ in range(l):
x, c = input().split()
direct.append((int(x), c))
dx = [1, 0, -1, 0]
dy = [0, 1, 0, -1]
idx = 0
time = 0
snake = deque() # ๋ฑ์ ์ขํ
snake.append((0, 0))
board[0][0] = -1
while True:
# ์ฃผ์ด์ง ์๊ฐ์ ๋ฑ ๋ฐฉํฅ ๋ณ๊ฒฝ
if direct and direct[0][0] == time:
_, mark = direct.popleft()
if mark == 'L':
idx += 3
elif mark == 'D':
idx += 1
idx %= 4
x, y = snake[0]
i, j = x + dx[idx], y + dy[idx]
# ๊ฒ์์ด ๋๋๋ ์กฐ๊ฑด
if not (0 <= i < n) or not (0 <= j < n) or board[j][i] == -1:
break
# ์ฌ๊ณผ๊ฐ ์์ ์, ๋ฑ์ ๊ผฌ๋ฆฌ ์ ๊ฑฐ
if not board[j][i]:
end_x, end_y = snake.pop()
board[end_y][end_x] = 0
# ๋ฑ ๋จธ๋ฆฌ ์ด๋
board[j][i] = -1
snake.appendleft((i, j))
time += 1
print(time + 1)'Problem Solving' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [Python] ๋ฐฑ์ค 14499๋ฒ - ์ฃผ์ฌ์ ๊ตด๋ฆฌ๊ธฐ (0) | 2024.01.20 |
|---|---|
| [Python] ๋ฐฑ์ค 9084๋ฒ - ๋์ (1) | 2024.01.19 |
| [Python] ๋ฐฑ์ค 1715๋ฒ - ์นด๋ ์ ๋ ฌํ๊ธฐ (0) | 2022.12.26 |
| [Python] ๋ฐฑ์ค 1753๋ฒ - ์ต๋จ๊ฒฝ๋ก (0) | 2022.11.30 |
| [Python] ๋ฐฑ์ค 1260๋ฒ - DFS์ BFS (1) | 2022.11.26 |