본문 바로가기

백준 파이썬 코딩

백준 1015 수열 정렬 파이썬

https://www.acmicpc.net/problem/1015

 

1015번: 수열 정렬

P[0], P[1], ...., P[N-1]은 0부터 N-1까지(포함)의 수를 한 번씩 포함하고 있는 수열이다. 수열 P를 길이가 N인 배열 A에 적용하면 길이가 N인 배열 B가 된다. 적용하는 방법은 B[P[i]] = A[i]이다. 배열 A가 주

www.acmicpc.net

문제에서 B[P[i]] = A[i]이라는 것을 착안해 아래와 같이 코드를 작성해줬다.

n = int(input())
s=list(map(int, input().split()))
re =s.copy()#정렬되기 전 배열 복사
s.sort()#정렬
dp =[0]*n#결과 저장해줄 리스트
for i in range(n):
    for j in range(n):
        if re[i]==s[j]:
            dp[i]=j#정렬된 리스트의 index를 뜻함
            s[j]=-1 #s에는 0보다 큰 자연수만 있으니 다시 해당 안되게 s[j]를 -1로 변경해줌
            break #하나를 바꿨으니 멈춰줘야함
print(*dp)