#1. Alt+W+N 입력하고 Alt+W+V :
import sys
from collections import deque # deque import
sys.stdin = open("input.txt", "rt")
n = int(input())
a = list(map(int,input().split()))
T = []
res = []
for x in range(n):
T.append((x+1,a[x]))
T.sort(reverse=True)
for x in range(n):
res.insert(T[x][1],T[x][0])
for x in res:
print(x, end=" ")
배열3개에 for문 3개가 좀 오바라고 생각해서 이렇게 했지만 또 생각해보았다...
#1. Alt+W+N 입력하고 Alt+W+V :
import sys
from collections import deque # deque import
sys.stdin = open("input.txt", "rt")
n = int(input())
a = list(map(int,input().split()))
res = []
for x in range(n-1,-1,-1):
res.insert(a[x],x+1)
for x in res:
print(x, end=" ")
근데 이걸 for문 안에 n-1, -1, -1 이 아니라 좀 더 깔끔하게 할 수는 없을까...
배열
seq 0 0 0 0 0 0 0 0 만들고
1 2 3 4 5 6 7 8 을 각각 넣어주는데
1이 5면 5번째 0에 넣어주고
점점 큰 숫자들을 만날때마다.. 이미 자리를 차지하고 있으면 그 뒷자리에 넣어준다.(어차피 자리 차지하고 있는 수 그 뒤로가도 나보다 작은 수이므로 상관이 없다.)
오름차순이므로, 작은 수는 무시하고 앞 큰수를 위한 빈칸을 만들어 둔다.
즉 for문 돌면서 i번째 들어간 값이 0이면 -1씩 작아지도록 한다.. 오름차순이니..
그래서 들어간 값이 0이고 방의 값이 0이면 그 위치에 1을 넣어주는것..
#1. Alt+W+N 입력하고 Alt+W+V :
import sys
sys.stdin = open("input.txt", "rt")
n = int(input())
a = list(map(int,input().split()))
seq = [0]*n
for i in range(n):
for j in range(n):
if a[i] == 0 and seq[j]==0: #0은 빈공간을 확보했다는 뜻
seq[j] = i+1
break
elif seq[j]==0:
a[i]-=1
for x in seq:
print(x, end=" ")