π 곡λΆνλ μ§μ§μνμΉ΄λ μ²μμ΄μ§?
[BAEKJOON python] 14891_ν±λλ°ν΄ λ³Έλ¬Έ
728x90
λ°μν
μ΄ 8κ°μ ν±λλ₯Ό κ°μ§κ³ μλ ν±λλ°ν΄ 4κ°
ν±λλ Nκ·Ή λλ Sκ·Ή μ€ νλλ₯Ό λνλ΄κ³ μλ€.
κ°μ₯ μΌμͺ½ ν±λλ°ν΄κ° 1λ², κ·Έ μ€λ₯Έμͺ½μ 2λ²,
κ·Έ μ€λ₯Έμͺ½μ 3λ², κ°μ₯ μ€λ₯Έμͺ½ ν±λλ°ν΄λ 4λ²
ν±λλ°ν΄λ₯Ό μ΄ Kλ² νμ μν€λ €κ³ νλ€.
ν±λλ°ν΄μ νμ μ ν μΉΈμ κΈ°μ€μΌλ‘ νλ€.
νμ μ μκ³ λ°©ν₯κ³Ό λ°μκ³ λ°©ν₯
ν±λλ°ν΄λ₯Ό νμ μν€λ €λ©΄, νμ μν¬ ν±λλ°ν΄μ νμ μν¬ λ°©ν₯μ κ²°μ
νμ ν λ, μλ‘ λ§λΏμ κ·Ήμ λ°λΌμ μμ μλ ν±λλ°ν΄λ₯Ό νμ μν¬ μλ μκ³ , νμ μν€μ§ μμ μλ μμ
ν±λλ°ν΄ Aλ₯Ό νμ ν λ, κ·Έ μμ μλ ν±λλ°ν΄ Bμ μλ‘ λ§λΏμ ν±λμ κ·Ήμ΄ λ€λ₯΄λ€λ©΄,
Bλ Aκ° νμ ν λ°©ν₯κ³Ό λ°λλ°©ν₯μΌλ‘ νμ νκ² λλ€.
ν±λλ°ν΄μ μ΄κΈ° μνμ ν±λλ°ν΄λ₯Ό νμ μν¨ λ°©λ²μ΄ μ£Όμ΄μ‘μ λ,
μ΅μ’ ν±λλ°ν΄μ μνλ₯Ό ꡬνλ νλ‘κ·Έλ¨μ μμ±
첫째 μ€μ 1λ² ν±λλ°ν΄μ μν, λμ§Έ μ€μ 2λ² ν±λλ°ν΄μ μν, μ μ§Έ μ€μ 3λ² ν±λλ°ν΄μ μν, λ·μ§Έ μ€μ 4λ² ν±λλ°ν΄μ μν
μνλ 8κ°μ μ μλ‘ μ΄λ£¨μ΄μ Έ μκ³ , 12μλ°©ν₯λΆν° μκ³λ°©ν₯ μμλλ‘ μ£Όμ΄μ§λ€.
Nκ·Ήμ 0, Sκ·Ήμ 1
λ€μ―μ§Έ μ€μλ νμ νμ K(1 ≤ K ≤ 100)κ° μ£Όμ΄μ§λ€.
λ€μ Kκ° μ€μλ νμ μν¨ λ°©λ²μ΄ μμλλ‘ μ£Όμ΄μ§λ€.
λ κ°μ μ μ : 첫 λ²μ§Έ μ μλ νμ μν¨ ν±λλ°ν΄μ λ²νΈ, λ λ²μ§Έ μ μλ λ°©ν₯
λ°©ν₯μ΄ 1μΈ κ²½μ°λ μκ³ λ°©ν₯μ΄κ³ , -1μΈ κ²½μ°λ λ°μκ³ λ°©ν₯
μ΄ Kλ² νμ μν¨ μ΄νμ λ€ ν±λλ°ν΄μ μ μμ ν©μ μΆλ ₯
1λ² ν±λλ°ν΄μ 12μλ°©ν₯μ΄ Nκ·Ήμ΄λ©΄ 0μ , Sκ·Ήμ΄λ©΄ 1μ
2λ² ν±λλ°ν΄μ 12μλ°©ν₯μ΄ Nκ·Ήμ΄λ©΄ 0μ , Sκ·Ήμ΄λ©΄ 2μ
3λ² ν±λλ°ν΄μ 12μλ°©ν₯μ΄ Nκ·Ήμ΄λ©΄ 0μ , Sκ·Ήμ΄λ©΄ 4μ
4λ² ν±λλ°ν΄μ 12μλ°©ν₯μ΄ Nκ·Ήμ΄λ©΄ 0μ , Sκ·Ήμ΄λ©΄ 8μ
# 1) DFS
import collections
graph = []
# for i in range(4) :
# graph.append(list(map(int, input())))
for _ in range(4):
graph.append(collections.deque(list(input())))
# Kκ° μ€μλ νμ μν¨ λ°©λ²
K = int(input())
# ν±λ λ§λ¬Όλ¦¬λ μν μ μ₯
info = [list(map(int, input().split())) for _ in range(K)]
# μΌμͺ½
def left(n, d) :
if n < 0 :
return
if graph[n][2] != graph[n + 1][6] : # κ·Ή λΉκ΅
left(n-1, -d) # μΌμͺ½ μ‘°μ¬
graph[n].rotate(d)
# μ€λ₯Έμͺ½
def right(n, d) :
if n > 3 :
return
if graph[n][6] != graph[n - 1][2] : # κ·Ή λΉκ΅
right(n+1, -d) # μ€λ₯Έμͺ½ μ‘°μ¬
graph[n].rotate(d)
for i in range(K) :
num = info[i][0] - 1 # ν±λλ°ν΄
direction = info[i][1] # μκ³, λ°μκ³
left(num - 1, -direction)
right(num + 1, -direction)
graph[num].rotate(direction)
result = 0
if graph[0][0] == '1':
result += 1
if graph[1][0] == '1':
result += 2
if graph[2][0] == '1':
result += 4
if graph[3][0] == '1':
result += 8
print(result)
728x90
λ°μν
'π¦₯ μ½ν > BAEKJOON' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[BAEKJOON python] 15684_μ¬λ€λ¦¬ μ‘°μ (0) | 2022.10.13 |
---|---|
[BAEKJOON python] 15683_κ°μ (0) | 2022.10.13 |
[BAEKJOON python] 14890_ κ²½μ¬λ‘ (0) | 2022.10.12 |
[BAEKJOON python] 14503_λ‘λ΄ μ²μκΈ° (1) | 2022.10.11 |
[BAEKJOON python] 14502_μ°κ΅¬μ (0) | 2022.10.10 |
Comments