728x90
문제
1부터 n까지의 수를 한 번씩만 사용하여 이루어진 수열이 있을 때, 1부터 n까지 각각의 수 앞 에 놓여 있는 자신보다 큰 수들의 개수를 수열로 표현한 것을 역수열이라 한다.
4 8 6 2 5 1 3 7의 역수열 : 5 3 4 0 2 1 1 0
1보다 큰 수는 4, 8, 6, 2, 5. 이렇게 5개이고,
2보다 큰 수는 4, 8, 6. 이렇게 3개,
3보다 큰 수는 4, 8, 6, 5 이렇게 4개....
n과 1부터 n까지의 수를 사용하여 이루어진 수열의 역수열이 주어졌을 때, 원래의 수열을 출력
첫 번째 줄에 자연수 N(3<=N<100)
두 번째 줄에는 역수열이 숫자 사이에 한칸의 공백
8
5 3 4 0 2 1 1 0
풀이
n=int(input())
a=list(map(int, input().split()))
res=[0]*n # 원수열 리스트
for i in range(n):
for j in range(n):
if a[i] == 0 and res[j] == 0: # 자기 자리 찾아들어감
res[j]=i+1
break
elif res[j] == 0:
a[i] -= 1 # 빈자리
for x in res:
print(x, end=" ")
728x90