알고리즘

[백준, 파이썬, 1015번] 수열 정렬

hminor 2023. 12. 28. 11:58

풀이

  • 해당 문제는 무슨 말인가 하다가 입력값과 출력값을 확인해보니
  • 큰 순서에 따라 번호를 메기는 문제로 파악하여 아래와 같이 해결할 수 있었다.
  • 우선 result는 입력 받는 배열의 크기만큼 생성 후 초기값을 따로 설정하고
  • 이후 2중 for문으로 계속 처음부터 조회할 수 있도록 했으며
  • result[j] 가 초기값 -1이 아닐 경우엔 넘어가고 
  • low 값보다 result[j]가 작다면 변경 후 idx 또한 함께 바꾼다음
  • 반복문이 마치면 그때 result 값을 변경해줘서 문제를 해결.

 

import sys

input = sys.stdin.readline
n = int(input())
li = list(map(int,input().split()))
result = [-1]*n

for i in range(n):
    low = sys.maxsize
    idx = 0
    for j in range(n):
        if result[j] != -1: continue
        elif low > li[j]:
            low = li[j]
            idx = j
    result[idx] = i
print(*result)