Adventure Time - Finn 3
본문 바로가기
코테연습/python

역수열(그리디)

by hyun9_9 2026. 4. 25.

1부터 n까지의 수를 한 번씩만 사용하여 이루어진 수열이 있을 때, 1부터 n까지 각각의 수 앞 에 놓여 있는 자신보다 큰 수들의 개수를 수열로 표현한 것을 역수열이라 한다. 예를 들어 다음과 같은 수열의 경우 4 8 6 2 5 1 3 7 1앞에 놓인 1보다 큰 수는 4, 8, 6, 2, 5. 이렇게 5개이고, 2앞에 놓인 2보다 큰 수는 4, 8, 6. 이렇게 3개, 3앞에 놓인 3보다 큰 수는 4, 8, 6, 5 이렇게 4개...... 따라서 4 8 6 2 5 1 3 7의 역수열은 5 3 4 0 2 1 1 0 이 된다. n과 1부터 n까지의 수를 사용하여 이루어진 수열의 역수열이 주어졌을 때, 원래의 수열을 출 력하는 프로그램을 작성하세요

import sys
# sys.stdin=open("input.txt","rt")
# n,m = map(int,input().split())
n = int(input())
arr = list(map(int,input().split()))

# n = input()
# arr = [list(map(int,input().split())) for _ in range(n)]
# arr = [int(input()) for _ in range(n)]
res = 0
a = [n for _ in range(len(arr))]

for i in range(n):
    # 0,1,2,3,4,5,6,7
    index = arr[i] # 5,3,4,0,2,1,1,0
    for j in range(n):
        if j>index:
            break
        if a[j] < i+1:
            index +=1
    a[index] = i+1

for m in a:
    print(m,end=' ')

'코테연습 > python' 카테고리의 다른 글

가운데 글자 가져오기  (0) 2026.04.27
가장 큰 수  (1) 2026.04.26
시저 암호  (1) 2026.04.25
문자열을 정수로 바꾸기  (1) 2026.04.25
수박수박수박수박수박수?  (0) 2026.04.25