[๋ฐฑ์ค€-1138] ํ•œ ์ค„๋กœ ์„œ๊ธฐ / Python

๐Ÿ“š Problem Solving/Baekjoon

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

 

1138๋ฒˆ: ํ•œ ์ค„๋กœ ์„œ๊ธฐ

์ฒซ์งธ ์ค„์— ์‚ฌ๋žŒ์˜ ์ˆ˜ N์ด ์ฃผ์–ด์ง„๋‹ค. N์€ 10๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ž์—ฐ์ˆ˜์ด๋‹ค. ๋‘˜์งธ ์ค„์—๋Š” ํ‚ค๊ฐ€ 1์ธ ์‚ฌ๋žŒ๋ถ€ํ„ฐ ์ฐจ๋ก€๋Œ€๋กœ ์ž๊ธฐ๋ณด๋‹ค ํ‚ค๊ฐ€ ํฐ ์‚ฌ๋žŒ์ด ์™ผ์ชฝ์— ๋ช‡ ๋ช…์ด ์žˆ์—ˆ๋Š”์ง€ ์ฃผ์–ด์ง„๋‹ค. i๋ฒˆ์งธ ์ˆ˜๋Š” 0๋ณด๋‹ค

www.acmicpc.net

import sys

input = sys.stdin.readline

n = int(input())
line = list(map(int, input().split()))

answer = [0] * n

for i in range(1, n + 1):
    temp = line[i - 1]
    cnt = 0
    for j in range(n):
        if temp == cnt and answer[j] == 0:
            answer[j] = i
            break
        elif answer[j] == 0:
            cnt += 1

print(*answer)

 

ํ•ด์„ค

answer์— ๊ฐ’์ด ๋“ค์–ด๊ฐˆ ์ธ๋ฑ์Šค ์•ž ๋ถ€๋ถ„์˜ 0๋“ค์€ ๋ชจ๋‘ ๊ทธ ๊ฐ’๋ณด๋‹ค ํฐ ๊ฐ’์ด ๋“ค์–ด๊ฐ€๊ฒŒ ๋œ๋‹ค.

 

cnt๋Š” answer๋ฅผ ์•ž์—์„œ๋ถ€ํ„ฐ ํƒ์ƒ‰ํ–ˆ์„ ๋•Œ 0์˜ ๊ฐœ์ˆ˜์ด๋‹ค.

line[i-1]์ด cnt์™€ ๊ฐ™์„ ๋•Œ ๋ฐ”๋กœ ๋‹ค์Œ answer ์ธ๋ฑ์Šค์— i๋ฅผ ๋„ฃ์–ด์ค€๋‹ค. ์ด๋ฏธ answer์˜ ํ•ด๋‹น ์ธ๋ฑ์Šค์— ๊ฐ’์ด ๋“ค์–ด๊ฐ„ ๊ฒฝ์šฐ๋ผ๋ฉด ๊ณ„์† ๋ฆฌ์ŠคํŠธ๋ฅผ ๋Œ์•„ 0์ธ ๋ถ€๋ถ„์— i๋ฅผ ๋„ฃ์–ด์ค€๋‹ค.