๐ ๋ฐฑ์ค 12789 - ๋ํค๋ํค ๊ฐ์๋๋ฆฌ๋ฏธ
๋ฐฑ์ค 12789 - ๋ํค๋ํค ๊ฐ์๋๋ฆฌ๋ฏธ
โก๏ธ ๋์ ํ์ด
์ธ๋ป ์ฌ์ ๋ณด์์ผ๋ ๋ง์ ํ์ด๋ณด๋๊น ์กฐ๊ธ ์ด๋ ค์ ๋ค. ๋งจ ์์ ์ฌ๋๋ง ์ด๋์ด ๊ฐ๋ฅํ๋ค๋ ์ง๋ฌธ์ ๋ณด์ ํ์ฌ ์ค ์์๋ ๊ณณ
์ queue
์ ์๋ฃ๊ตฌ์กฐ์ด๊ณ , ๊ฐ์ด๋ฐ ๊ณต๊ฐ์ ๋ค์ด๊ฐ ์ ์์ง๋ง ์ ์ผ ์์ด ๋ฒฝ์ผ๋ก ๋งํ๊ธฐ ๋๋ฌธ์ ๋งจ ๋ค๋ถํฐ ์ฌ๋์ด ๋์์ผ ํ๋ค. ๋ฐ๋ผ์ ํ ๋ช
์ฉ๋ง ์ค ์ ์๋ ๊ณต๊ฐ
์ stack
์ผ๋ก ์๊ฐํ๋ฉด ์ฝ๋ค.
๋์ฒด์ ์ผ๋ก queue
์ stack
๋ฌธ์ ๋ ์ง๋ฌธ์ ์๋ฏธ๋ฅผ ์ ํด์ํด์ผ ์ด๋ค ์๋ฃํ์ ์ฌ์ฉํด์ผ ํ ์ง ๊ฐ์ด ์ค๋ ๊ฒ ๊ฐ๋ค. ๊ทธ ๊ฐ์ ์ฐพ๊ธฐ ์ํด ๋ง์ ๋ฌธ์ ๋ฅผ ํ์ด๋ด์ผ๊ฒ ๋ค.
์ฒ์์๋ queue
์ ์๋ ์ฌ๋์ด ๋ค ๋น ์ง๊ณ stack
์ ์๊ฐํ๋ฉด ๋ ์ค ์์๋๋ฐ queue
๋ณด๋ค stack
์ ๋ ์์ ๊ฐ์ด ์์ผ๋ฉด stack
์ ์๋ ์ฌ๋์ ๋จผ์ ๋นผ์ค์ผ ํ๊ธฐ ๋๋ฌธ์ ๋์์ ๊ณ ๋ คํด์ผ ํ๋ค.
์๋ฅผ ๋ค์ด ์
๋ ฅ์ด 3 2 1 4 5
์ธ ๊ฒฝ์ฐ๋ฅผ ์ดํด๋ณด์. 4๋ฒ์งธ ์ค์์ ๋ณผ ์ ์๋ฏ์ด standing
๋ณด๋ค stack
์์ ๋ ์์ ๊ฐ์ ๋จผ์ ๋นผ์ค์ผ ํ๋ ๊ฒฝ์ฐ๋ฅผ ์ดํด๋ณผ ์ ์๋ค. ์ถ๊ฐ๋ก line 14๋ฒ ์ฝ๋์ while stack
์ผ๋ก ์์ฑํ๋๋ฐ, ๋ค์์ผ๋ก ๋น ๋ฅธ ๋ฒํธํ๊ฐ stack
์ ์๊ธฐ ๋๋ฌธ์ while
๋ฌธ์ผ๋ก ์์ฑํ๋ค.
# ๋์ ์ฝ๋
n = int(input())
standing = list(map(int, input().split()))
stack = []
target = 1
while standing:
if standing[0] == target:
standing.pop(0)
target += 1
else:
stack.append(standing.pop(0))
while stack:
if stack[-1] == target:
stack.pop()
target += 1
else:
break
if not stack:
print('Nice')
else:
print('No')
# ํน์ ์ด๋ ๊ฒ ์์ฑํด๋ ๋๋ค.
print('Nice' if not stack else 'No')
'Algorithm > ๋ฐฑ์ค(BOJ)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ ํ์ด์ฌ(python) ] ๋ฐฑ์ค 4949 - ๊ท ํ์กํ ์ธ์ (0) | 2021.07.05 |
---|---|
[ ํ์ด์ฌ(python) ] ๋ฐฑ์ค 10799 - ์ ๋ง๋๊ธฐ (0) | 2021.07.05 |
[ ํ์ด์ฌ(python) ] ๋ฐฑ์ค 1874 - ์คํ ์์ด (0) | 2021.06.30 |
[ ํ์ด์ฌ(python) ] ๋ฐฑ์ค 10546 - ๋ฐฐ๋ถ๋ฅธ ๋ง๋ผํ ๋ (0) | 2021.06.29 |
[ ํ์ด์ฌ(python) ] ๋ฐฑ์ค 1620 - ๋๋์ผ ํฌ์ผ๋ชฌ ๋ง์คํฐ ์ด๋ค์ (2) | 2021.06.28 |
๋๊ธ