반응형
문제
배열 A가 주어졌을 때, N번째 큰 값을 출력하는 프로그램을 작성하시오.
배열 A의 크기는 항상 10이고, 자연수만 가지고 있다. N은 항상 3이다.
입력
첫째 줄에 테스트 케이스의 개수 T(1 <= T <= 1,000)가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 배열 A의 원소 10개가 공백으로 구분되어 주어진다. 이 원소는 1보다 크거나 같고, 1,000보다 작거나 같은 자연수이다.
출력
각 테스트 케이스에 대해 한 줄에 하나씩 배열 A에서 3번째 큰 값을 출력한다.
예제 입력41 2 3 4 5 6 7 8 9 1000 338 304 619 95 343 496 489 116 98 127 931 240 986 894 826 640 965 833 136 138 940 955 364 188 133 254 501 122 768 408 |
예제 출력8489 931 768 |
풀이
입력된 수들을 리스트로 받고 정렬한다.
기본 함수로 정렬하면 오름차순으로 정리되기 때문에 3번째 큰 수는 앞에서 8번째에 있다.
따라서 인덱스 7번째의 수를 출력하면 된다.
reverse = True를 넣어 내림차순으로 정렬한 뒤 앞에서 3번째 수를 출력해도 된다.
import sys
input = sys.stdin.readline
for _ in range(int(input())):
print(sorted(list(map(int,input().split())))[7])
반응형
'알고리즘 연습 > 정렬' 카테고리의 다른 글
[🥈5 / 백준 2947 / 파이썬] 나무 조각 (0) | 2021.10.06 |
---|---|
[🥈4 / 백준 10825 / 파이썬] 국영수 (0) | 2021.09.17 |
[🥈2 / 백준 18870 / 파이썬] 좌표 압축 (0) | 2021.06.09 |
[🥈5 / 백준 10814 / 파이썬] 나이순 정렬 (0) | 2021.06.08 |
[🥈5 / 백준 1181 / 파이썬] 단어 정렬 (0) | 2021.06.08 |