๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿงฉps/๐Ÿ”ฅHard

[๋ฐฑ์ค€ 18115๋ฒˆ] ์นด๋“œ ๋†“๊ธฐ

by goguma.dev 2024. 9. 30.

๐Ÿ“–๋ฌธ์ œ:

 

๐Ÿ“™ํ’€์ด:

์ดˆ๊ธฐ ์ฝ”๋“œ์—์„œ ์ผ์ • ๊ทœ์น™์— ๋”ฐ๋ผ ์ˆซ์ž ์นด๋“œ๊ฐ€ ์Œ“์ด๋Š”๋ฐ, ๋ฌธ์ œ์—์„œ ์ดˆ๊ธฐ ์ฝ”๋“œ๋ฅผ ์•Œ์•„๋‚ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ฑฐ๊พธ๋กœ ์ƒ๊ฐํ•˜๋Š” ๋ถ€๋ถ„์ด ์–ด๋ ค์› ๋‹ค.

ํ•˜์ง€๋งŒ ๋ง‰์ƒ ๋ฐฉ๋ฒ•์„ ์•Œ๊ณ  ๋‚˜๋‹ˆ ์ •๋ง ๊ฐ„๋‹จํ–ˆ๋‹ค. ์Œ“์—ฌ ์žˆ๋Š” ์ˆซ์ž ์นด๋“œ๋Š” ํ•ญ์ƒ ์œ„์—์„œ๋ถ€ํ„ฐ 1, 2, 3, 4, 5.. ์ˆœ์œผ๋กœ ๊ฐ™๊ณ , 1์€ ๊ฒฐ๊ตญ ๋งˆ์ง€๋ง‰ ๊ทœ์น™์— ์˜ํ•ด ์Œ“์ธ ๊ฒƒ์ด๊ณ , 2๋Š” ๋งˆ์ง€๋ง‰ - 1 ๋ฒˆ์งธ ๊ทœ์น™์— ์˜ํ•ด ์Œ“์ธ ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ทœ์น™์˜ ์ˆœ์„œ๋ฅผ ๋’ค์ง‘์–ด์„œ ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์‹œ๊ฐ„ ๋ณต์žก๋„๋ฅผ ์ค„์ด๊ธฐ ์œ„ํ•ด ๋ฑ์„ ์‚ฌ์šฉํ–ˆ๋‹ค.

๋ฑ์€ ์–‘์ชฝ ๋์—์„œ ์‚ฝ์ž…๊ณผ ์‚ญ์ œ๊ฐ€ ๊ฐ€๋Šฅํ•˜๊ณ , ๊ทธ ๋•Œ ์‹œ๊ฐ„ ๋ณต์žก๋„๊ฐ€ O(1)๋กœ ๋งค์šฐ ๋นจ๋ผ ์ด๋Ÿฌํ•œ ๋ฌธ์ œ์— ์œ ๋ฆฌํ•  ๊ฒƒ ๊ฐ™๋‹ค.

 

โœ๏ธ์ฝ”๋“œ:

'''
https://www.acmicpc.net/problem/18115
๋ฌธ์ œ: ์นด๋“œ ๋†“๊ธฐ
๋‚œ์ด๋„: ์‹ค๋ฒ„3
'''

import sys
from collections import deque

# ์ด๋ฏธ ์Œ“์—ฌ ์žˆ๋Š” ์ˆซ์ž ์นด๋“œ๋“ค(1, 2, 3... ์ˆœ์„œ)์˜ ์ดˆ๊ธฐ ์ƒํƒœ๋ฅผ ์—ญ์ถ”์ ํ•ด์•ผ ํ•˜๋ฏ€๋กœ,
# skill์˜ ์ˆœ์„œ๋„ ๊ฑฐ๊พธ๋กœ ์ƒ๊ฐํ•ด์•ผ ํ•จ!
# ์˜ˆ๋ฅผ ๋“ค์–ด, 1์€ ๋งจ ๋งˆ์ง€๋ง‰์— skill๋กœ ์ธํ•ด ์ ค ์œ„์— ์Œ“์ž„
N = int(sys.stdin.readline())
skill = list(map(int, sys.stdin.readline().split()))
skill.reverse()

dq = deque()
for i in range(N):
    if skill[i] == 1:
        dq.appendleft(i + 1)
    elif skill[i] == 2:
        dq.insert(1, i + 1)
    elif skill[i] == 3:
        dq.append(i + 1)

for i in dq:
    print(i, end=" ")

 

๐Ÿ”—๋งํฌ:

https://www.acmicpc.net/problem/18115

 

'๐Ÿงฉps > ๐Ÿ”ฅHard' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[๋ฐฑ์ค€ 2503๋ฒˆ] ์ˆซ์ž ์•ผ๊ตฌ  (1) 2024.10.14