Notice
Recent Posts
Recent Comments
Link
| ์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
|---|---|---|---|---|---|---|
| 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 |
Tags
- CREATETABLE
- Key ์ข ๋ฅ
- RENAMETABLE
- SQLDDL
- TDD
- ๋ฌธ์์ด
- ํ์ด์ฌ
- ํค ์ข ๋ฅ
- latent factor
- ๋ถ๊ฝ๋ฐ์ดํฐ์
- ํด๋ฆฐ์ฝ๋
- ์ปจํ ์ด๋๊ฐ์ฒด
- latent factor model
- ๋ฐฑ์ค
- ๋ฌด๊ฒฐ์ฑ์ ์ง๋ฉ์ปค๋์ฆ
- ๋ฌด๊ฒฐ์ฑ
- knn_classify
- ๋ฌด๊ฒฐ์ฑ์ ์ง
- ์ ์ฌ์์๋ชจ๋ธ
- ์๊ณ ๋ฆฌ์ฆ
- SQL
- sklearn
- ์ฃผ์ฑ๋ถ ์ฐพ๊ธฐ
- Python
- ์ฌ์ดํท๋ฐ
- Hyperlink Graphs
- ALTERTABLE
- DROPTABLE
- ์ธ๋๋ณ๊ฐ๋น์ง์ปฌ๋ ํฐ
- ํ
Archives
- Today
- Total
DonHurry
[Python] ๋ฐฑ์ค 14891๋ฒ - ํฑ๋๋ฐํด ๋ณธ๋ฌธ
๐ ๋ฌธ์
14891๋ฒ: ํฑ๋๋ฐํด
์ฒซ์งธ ์ค์ 1๋ฒ ํฑ๋๋ฐํด์ ์ํ, ๋์งธ ์ค์ 2๋ฒ ํฑ๋๋ฐํด์ ์ํ, ์ ์งธ ์ค์ 3๋ฒ ํฑ๋๋ฐํด์ ์ํ, ๋ท์งธ ์ค์ 4๋ฒ ํฑ๋๋ฐํด์ ์ํ๊ฐ ์ฃผ์ด์ง๋ค. ์ํ๋ 8๊ฐ์ ์ ์๋ก ์ด๋ฃจ์ด์ ธ ์๊ณ , 12์๋ฐฉํฅ๋ถํฐ
www.acmicpc.net
๐ ํ์ด
๋ฐฑ์ค ์ผ์ฑ SW ์ญ๋ ํ ์คํธ ๊ธฐ์ถ ๋ฌธ์ ์ง์ ์๋ ๊ตฌํ ๋ฌธ์ ์ ๋๋ค. ํ์ด๋ ์๋์ ๊ฐ์ ๊ณผ์ ์ผ๋ก ์งํํ์์ต๋๋ค.
- ์ฃผ์ด์ง K๊ฐ์ ํ์ ๋ฐฉ๋ฒ์, ์์๋๋ก (๋ฒํธ์ ๋ฐฉํฅ์) ๊บผ๋ธ๋ค.
- ๋ฆฌ์คํธ(deque)๋ฅผ ๋ง๋ค์ด ๋ฒํธ์ ๋ฐฉํฅ์ ๋ฃ๋๋ค.
- ๋ฆฌ์คํธ์์ ๋ฒํธ์ ๋ฐฉํฅ์ ํ๋์ฉ ๋ฝ์ ์๋์ ๊ณผ์ ์ ๋ฐ๋ณตํ๋ค.
- ํด๋น ํฑ๋๋ฐํด๋ฅผ ๊ธฐ์ค์ผ๋ก ์ข์ฐ ํฑ๋๋ฐํด๊ฐ ์กด์ฌํ๋์ง, ์กด์ฌํ๋ค๋ฉด ๋ง๋ฟ์ ์๋ ๋ถ๋ถ์ด ๊ฐ์ ๊ทน์ธ์ง ํ์ธํ๋ค.
- ํ์ฌ ๋ฐํด๋ฅผ ํ์ ์ํค๊ณ , ๋ง์ฝ ๋ค๋ฅธ ๊ทน์ ๊ฐ์ง๊ณ ์์๋ค๋ฉด, ๋ฆฌ์คํธ์ ์๋ก์ด ๋ฒํธ์ ๋ฐฉํฅ์ ๋ฃ๋๋ค.
์ฃผ์ํ ์ ์ ํ์ ์ํค๊ธฐ ์ ์ ์์ ํฑ๋๋ฐํด๊ฐ ๊ฐ์ ๊ทน์ธ์ง, ๋ค๋ฅธ ๊ทน์ธ์ง ํ์ธํด์ผ ํ๋ค๋ ๊ฒ์ ๋๋ค.
๐ป ์ฝ๋
from collections import deque
wheel = [[]]
for _ in range(4):
wheel.append(deque([int(x) for x in input()]))
K = int(input())
q = deque()
for _ in range(K):
num, direct = map(int, input().split())
q.append((num, direct))
# ์์ ํฑ๋๋ฐํด๊ฐ ์๋ค๋ฉด -1
side = [[-1, 2], [1, 3], [2, 4], [3, -1]]
cnt = 0
while q:
check = [0 for _ in range(5)]
seq = deque()
seq.append((q.popleft()))
while seq:
num, direct = seq.popleft()
left, right = side[num-1]
# ์ข์ฐ ํฑ๋๋ฐํด๋ฅผ ์ฐ๋ฌ์ ํ์ ์ํค๋์ง์ ๋ํ flag
left_flag, right_flag = 0, 0
check[num] = 1
# ์ข์ฐ์ ํฑ๋๋ฐํด๊ฐ ์กด์ฌํ๊ณ ์ด๋ฏธ ํ์ ์ํค์ง ์์์ผ๋ฉฐ ๋ค๋ฅธ ๊ทน์ธ ๊ฒฝ์ฐ
if left != -1 and not check[num-1] and wheel[left][2] != wheel[num][6]:
left_flag = 1
if right != -1 and not check[num+1] and wheel[right][6] != wheel[num][2]:
right_flag = 1
# ์๊ณ ๋ฐฉํฅ, ๋ฐ์๊ณ ๋ฐฉํฅ์ผ๋ก ํ์
if direct == 1:
k = wheel[num].pop()
wheel[num].appendleft(k)
if direct == -1:
k = wheel[num].popleft()
wheel[num].append(k)
# ์ด์ ์ ์กฐ๊ฑด์ ๋ง์กฑํ ๊ฒฝ์ฐ ์์ ํฑ๋๋ฐํด๋ ํ์ ์ถ๊ฐ
if left_flag:
seq.append((num-1, -1 if direct == 1 else 1))
if right_flag:
seq.append((num+1, -1 if direct == 1 else 1))
# ์ต์ข
์ ์ ๊ณ์ฐ
for i in range(4):
if wheel[i+1][0]:
cnt += 2 ** i
print(cnt)'Problem Solving' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [Python] ๋ฐฑ์ค 1305๋ฒ - ๊ด๊ณ (0) | 2024.01.24 |
|---|---|
| [Python] ๋ฐฑ์ค 2133๋ฒ - ํ์ผ ์ฑ์ฐ๊ธฐ (0) | 2024.01.22 |
| [Python] ๋ฐฑ์ค 14499๋ฒ - ์ฃผ์ฌ์ ๊ตด๋ฆฌ๊ธฐ (0) | 2024.01.20 |
| [Python] ๋ฐฑ์ค 9084๋ฒ - ๋์ (1) | 2024.01.19 |
| [Python] ๋ฐฑ์ค 3190๋ฒ - ๋ฑ (0) | 2024.01.17 |