[백준] 1015번 수열 정렬 ★

거북이·2023년 7월 2일
0

백준[실버5]

목록 보기
105/114
post-thumbnail

💡문제접근

  • 문제의 표현을 처음 봤을 때 한 번에 이해하지 못했다. 결국 노트에 그려가면서 여러 번 해 본 결과 이해할 수 있었고 여기서 비내림차순은 오름차순이 아니라는 것을 기억할 필요가 있다.

💡코드(메모리 : 31256KB, 시간 : 40ms)

import sys
input = sys.stdin.readline

N = int(input())
A = list(map(int, input().strip().split()))

# 배열 A를 오름차순 정렬하여 리스트로 반환
sorted_A = sorted(A)

result = []
# 배열 A의 원소를 기준으로
for i in A:
	# 배열 A의 원소가 오름차순 정렬된 배열에서 몇 번째에 위치하는가?
    result.append(sorted_A.index(i))
    # 배열 A에 중복된 원소가 존재하면 index함수가 최초로 등장하는 시점의 인덱스를 반환하므로
    # 한 번 탐색한 값은 재탐색을 진행하지 않도록 값을 0으로 수정(배열 A는 자연수이므로 0이 나올 수 없기 때문에)
    sorted_A[sorted_A.index(i)] = 0

print(*result)

💡소요시간 : 48m

0개의 댓글