ํฐ์คํ ๋ฆฌ ๋ทฐ
728x90
๋ฐ์ํ
๋ฌธ์
๋ฌธ์ ํ์ด
์ด ๋ฌธ์ ๋ ๋ฌธ์ ๊ฐ ์ด๋ ค์ด๊ฒ ์๋๋ผ ์ฒ์์ ๋ฌธ์ ๋ฅผ ์ ํ์ ๋... ๋กธ....? ์ด๊ฒ ๋จผ์๋ฆฌ... ๐ฃ ๋ผ๊ณ ์๊ฐ์ด ๋ค์๋ค. ๋ฌธ์ ๋ฅผ ์ฐฌ์ฐฌํ ์ฝ์ผ๋ ์ด๊ฑด๊ฐ? ํ๊ณ ์ดํดํ๋ค. ์์ ์ ๋ ฅ 4, 3, 6, 8, 7 ,5, 2, 1์ด ์ฃผ์ด์ง๋ฉด stack์ 1 - n๊น์ง์ ์๋ฅผ ์ด๋ป๊ฒ push, popํ์ฌ์ ์ ๋ฌํ ์์ด์ ๋ง๋ค ์ ์๋๊ฐ๋ฅผ ๋ฌป๋ ๋ฌธ์ ์ด๋ค.
์์ด์ ์ฒ์์ด 4, 3์ด ๋๋ ค๋ฉด stack์ 1, 2, 3, 4๋ฅผ ์์๋๋ก pushํ๊ณ pop์ด 2๋ฒ ๋์ด์ผ ํ๋ค. ๊ทธ๋ค์ 6, 8์ด ์ถ๋ ฅ ๋๋ ค๋ฉด 5, 6์ pushํ๊ณ pop์ด 1๋ฒ ๋์ด์ผ ํ๋ค. ์ฆ, ๋ค์ ์ ๋ฆฌํด๋ณด์๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
-
์
๋ ฅ์ด ์ฃผ์ด์ง๋ฉด ํด๋น ๊ฐ ๊น์ง์ 1 ๋ถํฐ ์
๋ ฅ๊ฐ๊น์ง stack์ ๊ฐ์ ์ถ๊ฐํ๋ค.
- ๊ฐ์ด ์ค๋ณต๋๋ ๊ฒ์ ๋ง๊ธฐ ์ํด ์นด์ดํธ๋ก ์ ๋ ฅ๋ ๊ฐ์ ํ์ธํ๋ค.
-
stack์ ๋ง์ง๋ง์ผ๋ก ์ถ๊ฐ๋ ๊ฐ์ด ์
๋ ฅ๊ฐ๊ณผ ๊ฐ์ผ๋ฉด pop์ ํ๋ค.
- ์๋๋ผ๋ฉด ์์ด์ ์ด์ฉํด push popํ์ฌ ๋ง๋ค ์ ์๋ ๊ตฌ์ฑ์ด๋ค.
์ฝ๋
from sys import stdin
def solution(n):
count = 1
stack = []
answer = []
for _ in range(n):
num = int(stdin.readline())
while count <= num:
stack.append(count)
answer.append('+')
count += 1
if stack[-1] == num:
stack.pop()
answer.append('-')
else:
return None
return answer
if __name__ == "__main__":
n = int(stdin.readline())
ret = solution(n)
if ret is None:
print("NO")
else:
print('\n'.join(num for num in ret))
728x90
๋ฐ์ํ
'๐จโ๐ป ์ฝ๋ฉํ ์คํธ > ๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฐฑ์ค: 10799 ์ ๋ง๋๊ธฐ (0) | 2020.06.23 |
---|---|
๋ฐฑ์ค: 17413 ๋จ์ด ๋ค์ง๊ธฐ 2 (0) | 2020.06.23 |
๋ฐฑ์ค: 17299 ์ค๋ฑํฐ์ (0) | 2020.06.23 |
๋ฐฑ์ค: 17298 ์คํฐ์ (4) | 2020.06.23 |
๋ฐฑ์ค: 1158 ์์ธํธ์ค ๋ฌธ์ (0) | 2020.06.22 |
๋๊ธ
๊ธ ๋ณด๊ดํจ
์ต๊ทผ์ ์ฌ๋ผ์จ ๊ธ
์ต๊ทผ์ ๋ฌ๋ฆฐ ๋๊ธ