문제 출처: https://www.acmicpc.net/problem/2605
Bronze 2
제공되는 번호는 배열의 인덱스 번호고 출력해야하는 숫자는 인덱스 번호에 따라 넣어진 순서 숫자이다.
이걸 유의하고 숫자가 겹치면 뒤에 있는 숫자들을 뒤로 보내고 해당 인덱스 자리에 맞는 숫자를 넣어주면 된다.
def finalorder():
n = int(input())
arr = list(map(int,input().split()))
ans = [0] * (n)
for i in range(len(arr)):
if(ans[arr[i]] != 0):
for j in range(i-1,arr[i]-1,-1):
ans[j+1] = ans[j]
ans[arr[i]] = i+1
return ans
if __name__ == '__main__':
ans = finalorder()
for i in range(len(ans)-1,-1,-1):
print(ans[i], end=' ')
오랜만에 파이썬으로 문제 풀려니깐 쉬운 문제여도 시간이 생각보다 걸렸다(문법찾고 오류 나서 다시 수정하고..) 다음에는 더 빨리 풀도록 노력해야겠다