๐ ๋ฐฑ์ค 1874 - ์คํ ์์ด
๋ฌธ์ : ๋ฐฑ์ค 1874 - ์คํ ์์ด
๐ก ๋์ ํ์ด
๋์๊ฒ ๋์ด๋๊ฐ ์๋ ๋ฌธ์ ์๋ค. ๋ฌธ์ ์ ๊ธธ์ด๋ ์งง์์ง๋ง ์ดํดํ๊ธฐ๊น์ง ์๊ฐ์ด ์ค๋ ๊ฑธ๋ ธ๋ค.
์ค์ํ ํฌ์ธํธ๋ ์คํ์ pushํ๋ ์์๋ ๋ฐ๋์ ์ค๋ฆ์ฐจ์์ ์ ์งํ๋ค.
๋ผ๋ ๋ฌธ์ฅ์ธ๋ฐ, ์ด๋ฅผ ๋ค์ ๋งํ๋ฉด push ์์
๋ ํ์ฌ ๋ง๋ค์ด์ผ ํ ์์ด๋ณด๋ค ์์์ง ์ ์๊ณ ์ค์ง current = target
ํน์ current > target
ํ ๋๋ง ์ฑ๋ฆฝํ๋ค๋ ์๋ฏธ๋ค. ์ด๋ฅผ ์ดํดํ๊ธฐ๊น์ง๋ ๊ฝค ์ค๋ ์๊ฐ์ด ๊ฑธ๋ ธ๋ค.
๋, current
๋ ์ด๋ป๊ฒ ๊ตฌํํด์ผํ์ง๋ฅผ ๊ณ ๋ฏผํ๋๋ฐ 1~n
๊น์ง ์ ์ธํ ๋ค์ ์ฌ๊ธฐ์ ๋ฝ์ง ์์ ๊ฐ ์ค ๊ฐ์ฅ ์์ ๊ฐ๋ค์ ๊ฐ์ ธ์์ผ ํ๋ ๊ฑด๊ฐ? ์๊ฐํ๋๋ฐ ๊ฒฐ๋ก ์ ์ผ๋ก current += 1์ฉ
์ฆ๊ฐํ๋ฉด์ ๊ฐ์ ๋ฃ์ผ๋ฉด ๋๋ค.
current
๊ฐtarget
๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ๋ ๊น์งcurrent
๋ฅผstack
์ ๋ฃ์ด์ค๋ค. (push ์ฐ์ฐ)- ๋ง์ฝ,
stack[-1]
์ดtarget
๊ณผ ๊ฐ๋ค๋ฉดpop
์ฐ์ฐ์ ์ํํ๋ค. - ์ฐ์ฐ์ด ๋๋ฌ์ ๋
stack
์ ์๋ฌด๊ฒ๋ ๋จ์์์ง ์๋ค๋ฉดpush, pop
์ฐ์ฐ์ ์ถ๋ ฅํ๋ค. - ์ฐ์ฐ์ด ๋๋ฌ๋๋ฐ๋
stack
์ด ๋จ์์๊ฑฐ๋current > target
์ด๋ฉดNO
๋ฅผ ์ถ๋ ฅํ๋ค.
# ๋์ ํ์ด
import sys
input = sys.stdin.readline
n = int(input())
targets = [int(input()) for _ in range(n)]
flag = True
stack, answer, current = [], [], 0
for target in targets:
while True:
if stack and stack[-1] == target: # stack: ์ ์์ฑํ ์ด์ ๋ ๋งจ ์ฒ์ stack์ ์๋ฌด๊ฒ๋ ์๊ธฐ ๋๋ฌธ
answer.append('-')
stack.pop()
break
elif current > target:
flag = False
else:
current += 1
stack.append(current)
answer.append('+')
if not flag:
print('NO')
exit()
if flag:
print('\n'.join(answer))
# ๋ค๋ฅธ ์ฌ๋์ ํ์ด
import sys
input = sys.stdin.readline
n = int(input())
targets = [int(input()) for _ in range(n)]
current = 1
stack, answer = [], []
for target in targets:
while current <= target:
stack.append(current)
answer.append('+')
current += 1
if stack[-1] == target:
answer.append('-')
stack.pop()
if not stack:
print('\n'.join(answer))
else:
print('No')
'Algorithm > ๋ฐฑ์ค(BOJ)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ ํ์ด์ฌ(python) ] ๋ฐฑ์ค 10799 - ์ ๋ง๋๊ธฐ (0) | 2021.07.05 |
---|---|
[ ํ์ด์ฌ(python) ] ๋ฐฑ์ค 12789 - ๋ํค๋ํค ๊ฐ์๋๋ฆฌ๋ฏธ (0) | 2021.06.30 |
[ ํ์ด์ฌ(python) ] ๋ฐฑ์ค 10546 - ๋ฐฐ๋ถ๋ฅธ ๋ง๋ผํ ๋ (0) | 2021.06.29 |
[ ํ์ด์ฌ(python) ] ๋ฐฑ์ค 1620 - ๋๋์ผ ํฌ์ผ๋ชฌ ๋ง์คํฐ ์ด๋ค์ (2) | 2021.06.28 |
[ ํ์ด์ฌ(python) ] ๋ฐฑ์ค 17608 - ๋ง๋๊ธฐ (2) | 2021.06.28 |
๋๊ธ