π©π»πΎ
[λ°±μ€/Python] 1874λ² μ€νμΌλ‘ μμ΄ λ§λ€κΈ° λ³Έλ¬Έ
[λ°±μ€/Python] 1874λ² μ€νμΌλ‘ μμ΄ λ§λ€κΈ°
μ₯¬μ€μ΄ 2023. 2. 5. 16:261οΈβ£λ¬Έμ μ€λͺ
μ€ν (stack)μ κΈ°λ³Έμ μΈ μλ£κ΅¬μ‘° μ€ νλλ‘, μ»΄ν¨ν° νλ‘κ·Έλ¨μ μμ±ν λ μμ£Ό μ΄μ©λλ κ°λ μ΄λ€. μ€νμ μλ£λ₯Ό λ£λ (push) μ ꡬμ μλ£λ₯Ό λ½λ (pop) μ κ΅¬κ° κ°μ μ μΌ λμ€μ λ€μ΄κ° μλ£κ° μ μΌ λ¨Όμ λμ€λ (LIFO, Last in First out) νΉμ±μ κ°μ§κ³ μλ€.
1λΆν° nκΉμ§μ μλ₯Ό μ€νμ λ£μλ€κ° λ½μ λμ΄λμμΌλ‘μ¨, νλμ μμ΄μ λ§λ€ μ μλ€. μ΄λ, μ€νμ pushνλ μμλ λ°λμ μ€λ¦μ°¨μμ μ§ν€λλ‘ νλ€κ³ νμ. μμμ μμ΄μ΄ μ£Όμ΄μ‘μ λ μ€νμ μ΄μ©ν΄ κ·Έ μμ΄μ λ§λ€ μ μλμ§ μλμ§, μλ€λ©΄ μ΄λ€ μμλ‘ pushμ pop μ°μ°μ μνν΄μΌ νλμ§λ₯Ό μμλΌ μ μλ€. μ΄λ₯Ό κ³μ°νλ νλ‘κ·Έλ¨μ μμ±νλΌ.
2οΈβ£μ λ ₯
첫 μ€μ n (1 ≤ n ≤ 100,000)μ΄ μ£Όμ΄μ§λ€. λμ§Έ μ€λΆν° nκ°μ μ€μλ μμ΄μ μ΄λ£¨λ 1μ΄μ nμ΄νμ μ μκ° νλμ© μμλλ‘ μ£Όμ΄μ§λ€. λ¬Όλ‘ κ°μ μ μκ° λ λ² λμ€λ μΌμ μλ€.
3οΈβ£μΆλ ₯
μ λ ₯λ μμ΄μ λ§λ€κΈ° μν΄ νμν μ°μ°μ ν μ€μ ν κ°μ© μΆλ ₯νλ€. pushμ°μ°μ +λ‘, pop μ°μ°μ -λ‘ νννλλ‘ νλ€. λΆκ°λ₯ν κ²½μ° NOλ₯Ό μΆλ ₯νλ€.
π©π»π»μμ±ν μ½λ
import sys
input = sys.stdin.readline
n = int(input()) # μ
λ ₯ λ°μ λ°μ΄ν° κ°μ
a = 1
stack = [] # μ£Όμ΄μ§ μμ΄μ λ΄μ stack
sign = [] # pop, push μ 보 λ΄μ list
res = True
for i in range(n):
num = int(input())
while a <= num:
stack.append(a)
sign.append('+')
a += 1
if stack[-1] == num:
stack.pop()
sign.append('-')
else:
print("NO")
res = False
break
if res:
for i in sign:
print(i)
π‘μ½λ μ€λͺ
μ°μ , forλ¬Έ μμμ μμ΄μ λ°μ΄ν°λ₯Ό μ λ ₯ λ°κ³ , whileλ¬Έμμλ μ λ ₯ λ°μ numκ³Ό aκ° κ°μμ§ λκΉμ§ stackμ 1~numκΉμ§ appendν΄μ£Όκ³ appendν΄μ€ νμλ§νΌ signμλ '+'λ₯Ό appendν΄μ€λ€.
κ·Έλ° λ€μ λ§μ½ μ€νμ topμ κ°μ΄ μ λ ₯ λ°μ numκ³Ό κ°μμ§λ©΄ ν΄λΉ κ°μ popμν€κ³ , pop μν¨ μ 보λ₯Ό signμ '-'λ‘ appendν΄μ€λ€.
λ§μ½ numκ³Ό κ°μ§ μλ€λ©΄ μμ΄μ λ§λλ κ²μ΄ λΆκ°λ₯ν κ²½μ°λ‘ NOλ₯Ό μΆλ ₯νκ³ resμ κ°μ Falseλ‘ μ μ₯νλ€. -> μ΄ν resμ κ°μ΄ Falseμ΄λ©΄ μμ΄μ λ§λλ κ²μ΄ λΆκ°λ₯νλ€λ κ²μ΄λ―λ‘ κ²°κ³Ό μΆλ ₯ λ 쑰건μΌλ‘ μ¬μ©λ μμ
λ§μ§λ§μΌλ‘ resκ° TrueλΌλ©΄ μμ΄μ κ°μ μΆλ ₯ν μ μκ² νλ€.
'μ½λ©ν μ€νΈ > λ°±μ€(BOJ)' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[λ°±μ€/Python] 2164λ² μΉ΄λκ²μ (0) | 2023.02.06 |
---|---|
[λ°±μ€/Python] 17298λ² μ€ν°μ ꡬνκΈ° (0) | 2023.02.05 |
[λ°±μ€/Python] 11003λ² μ΅μκ° μ°ΎκΈ° 1 (0) | 2023.02.05 |
[λ°±μ€/Python] 12891λ² DNA λΉλ°λ²νΈ (0) | 2023.02.03 |
[λ°±μ€/Python] 1253λ² μ’μ μ ꡬνκΈ° (0) | 2023.01.31 |