n๋ช ์ ์ฌ๋๋ค์ด ์ฃผ์ด์ง๊ณ ๋์งธ ์ค์๋ ๊ณต๋ฐฑ์ ๊ธฐ์ค์ผ๋ก ๋ถ๋ฆฌ๋ ๋ฐฐ์ด์ด ์ฃผ์ด์ง๋ค.
ํด๋น ๋ฐฐ์ด์๋ ์๊ธฐ๋ณด๋ค ํค๊ฐ ํฐ ์ฌ๋์ด ์ผ์ชฝ์ ๋ช๋ช ์ด ์์๋์ง ์ฃผ์ด์ง๋ค.
import sys
input = sys.stdin.readline
n = int(input())
left = list(map(int, input().split()))
answer = [0] * n
for i in range(n):
cnt = 0
for j in range(n):
if left[i] == cnt and answer[j] == 0:
answer[j] = i+1
break
elif answer[j] == 0:
cnt += 1
print(' '.join(map(str, answer)))
< ํ์ด ๊ณผ์ >
์ ๋ ฅ๊ฐ์ผ๋ก n๊ณผ left ๋ฐฐ์ด์ ์ ๋ ฅ๋ฐ๊ณ answer ๋ฐฐ์ด๋ก n๊ฐ์ 0์ ์ ์ฅํด๋๋ค.
์ดํ ๋ค์๊ณผ์ ์ ๊ฑฐ์ณ answer์ ๊ฐ๋ค์ ๋ฃ๋๋ค.
- for๋ฌธ์ผ๋ก i๋ฒ์งธ ์ธ์์ด ์ผ์ชฝ์ ๋ช๋ช ์ด ์๋ ํ์ธ, cnt๋ก ์์ฌ๋ ์ธ์ ์ ์ฒดํน
- ๋๋ฒ์งธ for๋ฌธ์ผ๋ก ์ฃผ์ด์ง ๋ฐฐ์ด์ด cnt์ ๋์ผํ๊ณ , answer ๋ฐฐ์ด์ด 0์ธ ๊ฒฝ์ฐ answer์ ํด๋น ์นธ์ i+1 ์ ๋ ฅํ๊ณ break ์ฒ๋ฆฌ
- cnt์ ์ฃผ์ด์ง ๋ฐฐ์ด์ ๊ฐ์ด ๋ค๋ฅธ ๊ฒฝ์ฐ cnt + 1
-> ์ต์ข ์ ์ผ๋ก answer๋ฐฐ์ด๋ง ์ ๋ ฅ๊ฐ๊ณผ ๋์ผํ ํํ๋ก ์ถ๋ ฅํ๊ธฐ.