[Python] 알고리즘/Silver
[1138] 한 줄로 서기 (Python)
-Becca-
2022. 3. 18. 22:02
[문제]
https://www.acmicpc.net/problem/1138
1138번: 한 줄로 서기
첫째 줄에 사람의 수 N이 주어진다. N은 10보다 작거나 같은 자연수이다. 둘째 줄에는 키가 1인 사람부터 차례대로 자기보다 키가 큰 사람이 왼쪽에 몇 명이 있었는지 주어진다. i번째 수는 0보다
www.acmicpc.net
알고리즘 분류는 구현 입니다.
자신보다 큰 사람을 기억하고 있으므로, 만약 2명이라 기억한다면 자신의 왼쪽에는 2명의 큰 사람이 있었을 것입니다.
아래 영상은 알고리즘 이해를 돕기 위한 영상으로, 답을 알 수 있는 힌트가 들어있으니 나중에 보시는 것을 추천합니다.
[코드]
import sys
N = int(sys.stdin.readline())
height = list(map(int, sys.stdin.readline().split()))
dt = dict()
res = dict()
for i in range(N):
dt[i] = height[i]
res[i] = -1
for i in range(N):
cnt = 0
for j in range(N):
if cnt == dt[i] and res[j] == -1:
res[j] = i
break
if res[j] == -1 and cnt != dt[i]:
cnt += 1
for i in range(N):
print(res[i] + 1, end=" ")