์•Œ๊ณ ๋ฆฌ์ฆ˜/๊ตฌํ˜„

[๋ฐฑ์ค€ 1138 ๐Ÿฅˆ] ํ•œ ์ค„๋กœ ์„œ๊ธฐ

1eehyunji 2023. 9. 12. 01:28

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

 

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

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

www.acmicpc.net

๋ฌธ์ œ

N๋ช…์˜ ์‚ฌ๋žŒ๋“ค์€ ๋งค์ผ ์•„์นจ ํ•œ ์ค„๋กœ ์„ ๋‹ค. ์ด ์‚ฌ๋žŒ๋“ค์€ ์ž๋ฆฌ๋ฅผ ๋งˆ์Œ๋Œ€๋กœ ์„œ์ง€ ๋ชปํ•˜๊ณ  ์˜ค๋ฏผ์‹์˜ ์ง€์‹œ๋Œ€๋กœ ์„ ๋‹ค.

์–ด๋А ๋‚  ์‚ฌ๋žŒ๋“ค์€ ์˜ค๋ฏผ์‹์ด ์‚ฌ๋žŒ๋“ค์ด ์ค„ ์„œ๋Š” ์œ„์น˜๋ฅผ ๊ธฐ๋กํ•ด ๋†“๋Š”๋‹ค๋Š” ๊ฒƒ์„ ์•Œ์•˜๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์•„์นจ์— ์ž๊ธฐ๊ฐ€ ๊ธฐ๋กํ•ด ๋†“์€ ๊ฒƒ๊ณผ ์‚ฌ๋žŒ๋“ค์ด ์ค„์„ ์„  ์œ„์น˜๊ฐ€ ๋งž๋Š”์ง€ ํ™•์ธํ•œ๋‹ค.

์‚ฌ๋žŒ๋“ค์€ ์ž๊ธฐ๋ณด๋‹ค ํฐ ์‚ฌ๋žŒ์ด ์™ผ์ชฝ์— ๋ช‡ ๋ช… ์žˆ์—ˆ๋Š”์ง€๋งŒ์„ ๊ธฐ์–ตํ•œ๋‹ค. N๋ช…์˜ ์‚ฌ๋žŒ์ด ์žˆ๊ณ , ์‚ฌ๋žŒ๋“ค์˜ ํ‚ค๋Š” 1๋ถ€ํ„ฐ N๊นŒ์ง€ ๋ชจ๋‘ ๋‹ค๋ฅด๋‹ค.

๊ฐ ์‚ฌ๋žŒ๋“ค์ด ๊ธฐ์–ตํ•˜๋Š” ์ •๋ณด๊ฐ€ ์ฃผ์–ด์งˆ ๋•Œ, ์ค„์„ ์–ด๋–ป๊ฒŒ ์„œ์•ผ ํ•˜๋Š”์ง€ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

์ž…๋ ฅ

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

์ถœ๋ ฅ

์ฒซ์งธ ์ค„์— ์ค„์„ ์„  ์ˆœ์„œ๋Œ€๋กœ ํ‚ค๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

 

๋ฌธ์ œ ํ’€์ด

import sys

n=int(sys.stdin.readline())
ans=[0]*(n)
height=list(map(int, sys.stdin.readline().strip().split(' ')))
ans[height[0]]=1
for i in range(1,n):
    count = 0
    for j in range(n):
        if ans[j]==0 and height[i] == count:
            ans[j] = i + 1
            break
        if ans[j]==0:
            count+=1

print(*ans, sep=' ')
  • ํ‚ค๊ฐ€ 1์ธ ์‚ฌ๋žŒ์˜ ์œ„์น˜ ์ธ๋ฑ์Šค๋Š” ์™ผ์ชฝ์— ์œ„์น˜ํ•œ ์ž์‹ ๋ณด๋‹ค ํ‚ค ํฐ ์‚ฌ๋žŒ์˜ ์ˆ˜์™€ ๊ฐ™๋‹ค. (๊ฐ€์žฅ ์ž‘์€ ์‚ฌ๋žŒ์ด๋ฏ€๋กœ)

  • ์œ„ ๊ณผ์ •์ฒ˜๋Ÿผ ์™ผ์ชฝ์— ์ž์‹ ๋ณด๋‹ค ํฐ ์ˆ˜๊ฐ€ ์˜ฌ ์ˆ˜ ์žˆ๋Š” ๊ฐœ์ˆ˜๋งŒํผ์˜ ๋นˆ ์นธ์„ ๋‚จ๊ธฐ๊ณ , ๋‹ค์Œ์œผ๋กœ ์˜ค๋Š” ์ฒซ๋ฒˆ์งธ ์นธ์— ํ•ด๋‹น ์‚ฌ๋žŒ์˜ ํ‚ค๋ฅผ ์ €์žฅํ•ด์ฃผ๋ฉด ๋œ๋‹ค.
  • ์ด๋ฅผ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด์„œ for๋ฌธ์„ ์ด์šฉํ•ด์„œ ์•ž์— ๋นˆ ์นธ์˜ ๊ฐœ์ˆ˜(ans[j]==0)๋ฅผ ์นด์šดํŒ…ํ•ด์ฃผ๊ณ  ํƒ์ƒ‰ ์ธ๋ฑ์Šค๋ฅผ +1ํ•ด์ฃผ๋ฉด์„œ ์นด์šดํŒ…ํ•œ ๊ฐœ์ˆ˜๊ฐ€ ์™ผ์ชฝ์— ์œ„์น˜ํ•œ ์ž์‹ ๋ณด๋‹ค ํฐ ์‚ฌ๋žŒ์˜ ์ˆ˜์™€ ์ผ์น˜ํ•˜๋ฉด์„œ ans[j]๊ฐ€ 0์œผ๋กœ ๋นˆ ์นธ์ธ ์ธ๋ฑ์Šค๋ฅผ ๋ฐœ๊ฒฌํ•˜๋ฉด ํ•ด๋‹น ์ธ๋ฑ์Šค์— ํ˜„์žฌ ํƒ์ƒ‰ ์ค‘์ธ ์‚ฌ๋žŒ์˜ ํ‚ค๋ฅผ ์ €์žฅํ•ด์ค€๋‹ค.