문제
배열 A가 주어졌을 때, N번째 큰 값을 출력하는 프로그램을 작성하시오.
배열 A의 크기는 항상 10이고, 자연수만 가지고 있다. N은 항상 3이다.
입력
첫째 줄에 테스트 케이스의 개수 T(1 ≤ T ≤ 1,000)가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 배열 A의 원소 10개가 공백으로 구분되어 주어진다. 이 원소는 1보다 크거나 같고, 1,000보다 작거나 같은 자연수이다.
출력
각 테스트 케이스에 대해 한 줄에 하나씩 배열 A에서 3번째 큰 값을 출력한다.

나의 풀이
t=int(input())
n=3
aa=[]
for i in range(t): # 테스트 케이스 입력
a=list(map(int, input().split())) # 띄어쓰기로 슬라이싱하여 리스트화
aa.append(a) # 리스트 저장
for i in range(t):
print(sorted(aa[i],reverse=True)[2]) # 행별로 내림차순 정렬 후 3번째 큰 값 출력
테스트 케이스 하나를 입력받을 때마다 배열에 리스트 하나씩이 추가된다.
최종적으로 입력이 완료된 배열을 뜯어보면 아래와 같다.
우리는 3번째로 큰 값을 출력해야 하는데,
for문을 활용해서 각 행을 정렬 후 뽑아와도 되겠지만
조금 간단하게 짜고 싶어서 sorted를 활용하여 내림차순 정렬 결과를 뽑은 후
그대로 결과를 출력해주었다.
아주 기초적인 부분이지만! 배열의 첫 값은 주소가 0이므로
내림차순 정렬된 리스트에서 3번째로 큰 값을 찾고 싶다면 주소를 2로 지정해주어야 잘 뽑힌다.
끝~
'프로그래밍 > 백준' 카테고리의 다른 글
[백준] 1292. 쉽게 푸는 문제 (0) | 2022.11.15 |
---|---|
[백준] 1978. 소수 찾기 (0) | 2022.11.15 |
[백준] 2609. 최대공약수와 최소공배수 (0) | 2022.11.15 |
[백준] 2309. 일곱 난쟁이 (0) | 2022.11.15 |
[백준] 10870. 피보나치 수 5 (0) | 2022.11.11 |