N = input()
arr = list(map(int, input().split()))
arr1 = arr[:]
arr1.sort(reverse=True)
result = []
for i in range(3):
# search for arr1[i] in arr. we need the index of that arr
result.append(arr.index(arr1[i])+1)
print(f"{result[0]} {result[1]} {result[2]}")
이것도 작동하는데 조금 더 개선시켜보자
import sys
input = sys.stdin.readline
n = int(input())
scores = list(map(int, input().split()))
# (점수, 번호) 튜플로 만들고 점수 내림차순 정렬
indexed = [(score, i + 1) for i, score in enumerate(scores)]
indexed.sort(key=lambda x: -x[0])
# 상위 3명의 번호 출력
result = [str(indexed[i][1]) for i in range(3)]
print(' '.join(result))
이제 슬슬 sys.stdin.readline 을 쓸 때가 되었다.
import sys
input = sys.stdin.readline
import sys 는 기본적으로 넣고 시작하자. input = sys.stdin.readline 도 마찬가지.
이유는 속도가 빠르기 때문.
주의할점!
개행문자까지 읽는게 sys.stdin.readline의 큰 차별점이다.
strip()으로 공백 문자 (개행문자는 공백 문자에 포함됨)을 제거해준다.
strip()은 문자열 양쪽 끝의 공백 문자를 제거하고, rstrip()은 오른쪽 끝만 제거해요.
strip() — 왼쪽(left) + 오른쪽(right) 양쪽rstrip() — 오른쪽(right)만. r이 right예요.lstrip() — 왼쪽(left)만. l이 left예요.