출처 : https://www.acmicpc.net/problem/1015
n = int(input())
a = list(map(int, input().split()))
b = list('_'*n)
for i in range(n) :
b[a.index(min(a))] = i
a[a.index(min(a))] = min(a) + max(a)
for j in b :
print(j, end=" ")
리스트 a와 길이가 같은 빈 리스트 b를 생성한다.
현재 a의 최소값의 인덱스를 받아와서 b의 해당 인덱스에 순위를 저장하고,
a의 최소값을 최대값을 더한 값으로 대체한다.
그러면 굳이 해당 값을 pop이나 remove로 제거하지 않고도 다음 a의 최소값을 min 메소드로 구할 수 있다.
'알고리즘 문제 풀이' 카테고리의 다른 글
백준 10870번 : 피보나치 수 5 (Python) (1) | 2022.11.20 |
---|---|
백준 9020번 : 골드바흐의 추측 (Python) (0) | 2022.11.15 |
프로그래머스 시저 암호 (Python) (0) | 2022.11.01 |
백준 11652번 : 카드 (Python) (0) | 2022.11.01 |
백준 1740번 : 거듭제곱 (Python) (0) | 2022.10.26 |
댓글