λ°±μ€ (BOJ) 17298λ²
https://www.acmicpc.net/problem/17298
μ¬μ©μΈμ΄ : PYTHON
1.λ¬Έμ
2.νμ΄
μκ°μ νμ΄ 1μ΄μ΄κΈ° λλ¬Έμ μ€μ²© λ°λ³΅λ¬ΈμΌλ‘ νκ²λλ©΄ μκ°μ΄κ³Όκ° λμ¬κ² κ°μμ μ€νμ μ¬μ©νμ¬ νμ΄μΌκ² λ€κ³ μκ°νλ€.
μ²μμλ ν° μμ μκ°μ΄ μ¬λ‘ μ‘νμ μ€νμ κ°μ₯ ν° κ°μ μ μ§νλ©΄ μλ κΉ? λΌλ μκ°μ κ³μνμλ€. 1μκ° μ λ κ³ λ―Όν΄λ³΄λ€ λμ ν μλ κ² κ°μμ λ€λ₯ΈλΆλ€μ νμ΄λ₯Ό κ²μνμλ€.
κ²μμ ν΅ν΄ μκ²λ μμ΄λμ΄λ λ€μκ³Ό κ°λ€.
μ€νμ μμ΄μ κ°μ₯ ν° κ°μ μ μ§νλ κ²μ΄ μλ, μ€νμ μ μΌ μ κ°λ³΄λ€ ν° κ°μ΄ λμ¬λ κΉμ§ μμ΄μ κ°λ€μ μ°¨λ‘λλ‘ μλ κ²μ΄μλ€. κ·Έλ¬λ€κ° μ€νμ μ μΌ μμ κ°λ³΄λ€ ν° μμ΄μ κ°μ΄ λμ€λ©΄ κ·Έ μλ μ€ν μ μΌ μ κ°μ μ€ν°μκ° λλ€. μ΄ λμμ popνλ©΄μ μ€νμ μ μΌ μκ°λ³΄λ€ μμλ κΉμ§ λ°λ³΅νλ©΄ λλ€.
κ·Έλ¦ΌμΌλ‘ λνλ΄λ©΄ λ€μκ³Ό κ°λ€
μ²μμλ μ€νμ μ무κ²λ μμΌλ―λ‘ 3μ λ£λλ€
μ€ν κ°μ₯ μμ κ° 3λ³΄λ€ μμΌλ―λ‘ 2λ appendνλ€
μ€νμ κ°μ₯ μ κ° 2λ³΄λ€ 4κ° ν¬λ―λ‘ 4κ° 2μ μ€ν°μμ΄λ€. 2λ₯Ό popνκ³ ,
μ€νμ κ°μ₯ μ κ°μ 3μ΄λλλ° 3λ³΄λ€ 4κ° ν¬λ―λ‘ 3μ μ€ν°μλ 4κ° λλ€.
κ·Έλ¦¬κ³ λμ΄μ λΉκ΅ν μκ° μμΌλ―λ‘ 4λ₯Ό appendνλ€.
1μ 4λ³΄λ€ μμΌλ―λ‘ appendνλ€.
8μ 1λ³΄λ€ ν¬λ―λ‘ 1μ μ€ν°μκ° λλ€. 1μ popνλ©΄ 4κ° μ€νμ κ°μ₯ μ κ°μ΄λλλ° 4λ³΄λ€ 8μ΄ ν¬λ―λ‘ 4μ μ€ν°μλ 8μ΄ λλ€.
μ΄λ answerλ°°μ΄μ μ μ ν μμΉμ μ€ν°μλ₯Ό λ£μ΄μΌ νλλ°, μ΄λ₯Ό μν΄μ μ€νμ λ°°μ΄μ κ°λ§ λ£λκ²μ΄ μλ, μΈλ±μ€λ₯Ό κ°μ΄ λ£μ΄μ€μΌ νλ€.
3.μ½λ
import sys
input = sys.stdin.readline
N=int(input())
a=list(map(int,input().split()))
answer=[-1]*N
stck=[]
for i in range(N):
while len(stck)>0 and stck[-1][0] < a[i]:
val,idx=stck.pop()
answer[idx]=a[i]
stck.append([a[i],i])
print(*answer)
'πμ½λ©ν μ€νΈ:CodingTest' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[λ°±μ€ 1463λ²-νμ΄μ¬]1λ‘ λ§λ€κΈ° (0) | 2023.06.20 |
---|---|
[λ°±μ€ 6588λ²-νμ΄μ¬]골λλ°νμ μΆμΈ‘ (0) | 2023.06.20 |
[λ°±μ€ 1406λ²-νμ΄μ¬]μλν° (0) | 2023.06.20 |
[λ°±μ€ 18870λ²-νμ΄μ¬]μ’νμμΆ (0) | 2023.06.20 |
[λ°±μ€ 2108λ²-νμ΄μ¬]ν΅κ³ν (0) | 2023.06.20 |