백준 문제 링크
한 줄로 서기
- 기억하는 정보를 lst에 넣는다.
- N 개의 0을 담은 리스트 arr을 만든다. (구하고자 하는 순서 리스트)
- 2개의 for문으로 arr을 채울건데, 조건은 다음과 같다.
- for i in range(1, N-1):
cnt = lst[i-1] # 현재 사람이 기억하는 정보
- for j in range(N): # arr을 살펴볼거임
- if cnt == 0 and arr[j] == 0: arr[j] = i
cnt가 0이고 arr[j]가 0이면
arr[j]에 그 사람을 넣는다.- elif arr[j] == 0: cnt -= 1
만약 이 사람의 왼쪽에 더 큰 사람이 있다면 cnt -= 1
- 위 과정을 반복하면
arr = [0, 0, 1, 0]
arr = [0, 2, 1, 0]
arr = [0, 2, 1, 3]
arr = [4, 2, 1, 3]이 된다.
N = int(input())
lst = list(map(int, input().split()))
arr = [0] * N
for i in range(1, N+1):
cnt = lst[i-1]
for j in range(N):
if cnt == 0 and arr[j] == 0:
arr[j] = i
break
elif arr[j] == 0:
cnt -= 1
print(arr)
print(* arr)