Study/알고리즘

[백준] 1138번_한줄로서기

혤리 2020. 2. 19. 15:04

문제 링크 : https://www.acmicpc.net/problem/1138

 

1138번: 한 줄로 서기

첫째 줄에 사람의 수 N이 주어진다. N은 10보다 작거나 같은 자연수이다. 둘째 줄에는 키가 1인 사람부터 차례대로 자기보다 키가 큰 사람이 왼쪽에 몇 명이 있었는지 주어진다. i번째 수는 0보다 크거나 같고, N-i보다 작거나 같다.

www.acmicpc.net

N = int(input())
height = list(map(int,input().split()))
ans = [N]

for i in range(N-2,-1,-1):
    if height[i] == 0:
        ans.insert(0,i+1)
    elif len(ans)==height[i]:
        ans.append(i+1)
    else:
        ans.insert(height[i],i+1)

print(*ans)

키 큰 사람부터 ans(답으로 출력될 배열)에 넣어주면 쉽게 풀리는 문제였다.