๋ฌธ์
https://www.acmicpc.net/problem/14891
๋ฌธ์ ํ์ด
n๋ฒ ๋ฐํด์ 2๋ฒ index๋ n+1๋ฒ ๋ฐํด์ 6๋ฒ index์ ์ธ์ ํ๊ณ
n๋ฒ ๋ฐํด์ 6๋ฒ index๋ n-1๋ฒ ๋ฐํด์ 2๋ฒ index์ ์ธ์ ํ๋ค.
์ด ๋ ๊ฐ์ ๋จผ์ update ํ ํ์,
a๋ฒ์ ๊ธฐ์ค์ผ๋ก ์ผ์ชฝ/์ค๋ฅธ์ชฝ์ผ๋ก 2๊ฐ์ for๋ฌธ์ ํตํด ๋๋จธ์ง ๋ฐํด๋ค์ ํ์ํ๋ค.
a๋ฒ๊ณผ ๋ฐ๋ก ์ธ์ ํ ๋ฐํด์ ๊ฒฝ์ฐ, a๋ฒ๊ณผ ๋ฐ๋ ๋ฐฉํฅ์ผ๋ก ๋์๊ฐ์ผ ํ๊ธฐ ๋๋ฌธ์
b์ -1์ ๊ณฑํด์ค ๊ฐ์, ๊ทธ ๋ค์ ๋ฐํด๋ ๋ ๋ค์ -1์ ๊ณฑํ b ๊ฐ์ ์ฐ์ฐํด ์ฃผ์ด์ผ ํ๋ค.
deque์ ํฌํจ๋ rotate ํจ์๋ฅผ ํตํด index ๋ณํ์ ๋ ์ฝ๊ฒ ํด์ฃผ์๋ค.
- rotate ์ฐ์ฐ
rotate() : ๊ฐ์ฅ ์ค๋ฅธ์ชฝ ๊ฐ์ pop ํ ๋ค์ appendleft๋ก ์ถ๊ฐํด์ค๋ค.
๊ดํธ ์์ ์ธ์๊ฐ ๋ค์ด๊ฐ๋ฉด ๊ทธ ๊ฐ๋งํผ ์ด๋
-๊ฐ์ด ๋ค์ด๊ฐ๋ฉด ๊ฐ์ฅ ์ผ์ชฝ ๊ฐ์ popleft ํ ํ์ append ํด์ค๋ค.
์ฝ๋
from collections import deque
โ
saw=[deque(map(int,input())) for _ in range(4)]
k=int(input())
how=[]
โ
for i in range(k):
how.append(list(map(int,input().split())))
how[i][0]-=1
โ
for a,b in how:
tmp1=saw[a][2]
tmp2=saw[a][6]
k=b
for i in range(a-1,0-1,-1):
if saw[i][2]!=tmp2:
tmp2=saw[i][6]
saw[i].rotate(-1*k)
k*=-1
else:
break
k=b
for i in range(a+1,4):
if saw[i][6]!=tmp1:
tmp1=saw[i][2]
saw[i].rotate(-1*k)
k*=-1
else:
break
saw[a].rotate(b)
result=0
for i in range(4):
if saw[i][0]==1:
result+=(2**i)
print(result)
์ด๋ ค์ ๋ ์ / ๋๋์
์ฒ์์๋ rotate ๋์ ํจ์๋ฅผ ์ง์ ๊ตฌํํ์ฌ ์คํํ๋ค. ์์๋ ๋ค ํต๊ณผํ๊ธธ๋ ์ ์ถํ๋๋ฐ ์ ์ถํ์๋ง์ ํ๋ ธ๋ค.
๊ตฌ๊ธ๋งํ๋ค๊ฐ rotate ํจ์๊ฐ ์๋ค๋ ๊ฒ์ ๋ฐ๊ฒฌ!!
'๐ป ์๊ณ ๋ฆฌ์ฆ > PS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BOJ/๋ฐฑ์ค] 19538 ๋ฃจ๋จธ - ํ์ด์ฌ (0) | 2021.09.17 |
---|---|
[BOJ/๋ฐฑ์ค] 1074 Z - ํ์ด์ฌ (0) | 2021.09.17 |
[BOJ/๋ฐฑ์ค] 13302 ๋ฆฌ์กฐํธ - ํ์ด์ฌ (0) | 2021.08.25 |
[BOJ/๋ฐฑ์ค] 20923 ์ซ์ ํ ๋ฆฌ๊ฐ๋ฆฌ ๊ฒ์ - ํ์ด์ฌ (0) | 2021.08.24 |
[BOJ/๋ฐฑ์ค] 17396 ๋ฐฑ๋์ด - ํ์ด์ฌ (0) | 2021.08.23 |