๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ํ’€์ด/Greedy

[๋ฐฑ์ค€]1138๋ฒˆ: ํ•œ ์ค„๋กœ ์„œ๊ธฐ

by syLim___ 2023. 3. 18.
728x90

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

 

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

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

www.acmicpc.net


์ด ๋ฌธ์ œ ํ’€ ๋•Œ ๋จธ๋ฆฌ๊ฐ€ ๋˜๊ฒŒ ์•ˆ ๋Œ์•„๊ฐ”๊ณ  ์€๊ทผ ์–ด๋ ค์› ๋‹ค.

 

 

์‹œ๊ฐ„์ œํ•œ์€ 2์ดˆ๋กœ ๋„๋„ํ•˜๊ณ , ์ฃผ์–ด์ง€๋Š” N๋„ ๋งค์šฐ๋งค์šฐ ์ž‘์€ ์ˆ˜์ด๋‹ค.

์ด์ค‘ํฌ๋ฌธ ๋Œ๋ ค์„œ ํ•˜๋‚˜์”ฉ ์ฒดํฌํ•ด๋„ ์ „ํ˜€ ๋ฌธ์ œ๋˜์ง€ ์•Š๊ฒ ๋‹ค ์ƒ๊ฐํ•ด์„œ ์ฐจ๊ทผ์ฐจ๊ทผ ํ’€์–ด๋ด„

 

์•„์ด๋””์–ด

1. ํฌ๊ธฐ๊ฐ€ n์ด๊ณ  ์ „๋ถ€ -1๋กœ ์ดˆ๊ธฐํ™”๋˜์–ด์žˆ๋Š” ๋ฆฌ์ŠคํŠธ result๋ฅผ ๋งŒ๋“ ๋‹ค. (-1์€ ๋นˆ์ž๋ฆฌ๋ผ๋Š” ์˜๋ฏธ)

2. ํ•œ ๋ช…์”ฉ ์ค„์„ ์„ธ์šด๋‹ค.

  2-1. result ๋ฆฌ์ŠคํŠธ๋ฅผ ์ˆœํšŒํ•˜๋ฉด์„œ, ๋นˆ์ž๋ฆฌ๋ฅผ ์„ผ๋‹ค.(๋ˆ„๊ตฐ๊ฐ€ ์„œ์žˆ์œผ๋ฉด ์ž์‹ ๋ณด๋‹ค ํ‚ค๊ฐ€ ์ž‘์€ ์‚ฌ๋žŒ์ด๋ฏ€๋กœ ์ด ์‚ฌ๋žŒ๋“ค์€ ๋นผ๊ณ  ์„ผ๋‹ค)

  2-2. ๋นˆ์ž๋ฆฌ ์ˆ˜๊ฐ€ ์ž์‹ ๋ณด๋‹ค ํฐ ์‚ฌ๋žŒ ์ˆ˜์™€ ๊ฐ™์•„์ง€๋ฉด, ๋ฐ”๋กœ ๋’ค ๋นˆ์ž๋ฆฌ์— ์„ธ์šด๋‹ค.

 

์ •๋‹ต ์ฝ”๋“œ

import sys
input = sys.stdin.readline

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

result=[-1]*n

for i in range(n):
  cnt=0
  for j in range(n):
    if result[j]==-1:
      if cnt>=arr[i]:
        result[j]=i+1
        break
      else:
        cnt+=1
 
for i in range(n):
  print(result[i],end=' ')

 

728x90