문제 2693
배열 A가 주어졌을 때, N번째 큰 값을 출력하는 프로그램을 작성하시오.
배열 A의 크기는 항상 10이고, 자연수만 가지고 있다. N은 항상 3이다.
입력
첫째 줄에 테스트 케이스의 개수 T(1 <= T <= 1,000)가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 배열 A의 원소 10개가 공백으로 구분되어 주어진다. 이 원소는 1보다 크거나 같고, 1,000보다 작거나 같은 자연수이다.
출력
각 테스트 케이스에 대해 한 줄에 하나씩 배열 A에서 3번째 큰 값을 출력한다.
풀이
N=int(input())
A = [list(map(int, input().split())) for _ in range(N)]
for i in range(0,N):
A[i] = sorted(A[i])
A[i].reverse()
print(A[i][2])
2차원 배열에 관한 문제를 풀어보았다. 문제 자체는 어렵지 않지만 2차원배열을 사용하는게 익숙하지 않아서 헤매는 시간이 좀 길었다.
여러가지 기능을 검색해보면서 최대한 간결하게 코드로 작성을 할 수 있었다. map과 언더바 사용은 자주 사용될꺼 같다.
'CS > 알고리즘' 카테고리의 다른 글
(알고리즘 공부) 체육복 (0) | 2021.03.15 |
---|---|
(알고리즘 공부) 모의고사 (0) | 2021.03.12 |
(알고리즘 공부) 완주하지 못한 선수 (0) | 2021.03.12 |
알고리즘 문제풀기(K번째 수) (0) | 2021.03.06 |
알고리즘 문제 풀기 기초(일곱 난쟁이) (0) | 2021.03.03 |