티스토리 뷰
https://www.acmicpc.net/problem/2075
1. 접근 방식
- 한 줄씩 입력 받을 때마다 1번째 ~ N번째 큰 수를 갱신하자
1번부터 N번째 큰 수를 담는 리스트를 사용한다. 위 그림에선 노란 리스트이다. 회색 리스트는 매번 입력 받는 숫자들이다. 노란 리스트는 회색 리스트의 숫자들이 추가될 때마다 갱신된다.
현재 노란색 리스트에 있는 숫자들과 회색 리스트에 있는 숫자들을 내림차순 정렬하고, 인덱스 0에서 (N - 1)까지 잘라서 노란 리스트에 담기를 반복한다. 그럼 마지막으로 갱신된 노란 리스트의 (N - 1) 인덱스가 바로 N번째 큰 수가 된다.
2. 정답 코드
import sys
input = sys.stdin.readline
N = int(input())
max_N = []
for _ in range(N):
max_N = sorted(max_N + list(map(int, input().split())), reverse=True)[:N]
print(max_N[N-1])
728x90
'코딩 테스트 > 백준' 카테고리의 다른 글
[백준] 17144번 미세먼지 안녕! 파이썬 정답 풀이 (0) | 2024.03.08 |
---|---|
[백준] 14719번 빗물 파이썬 풀이 (0) | 2024.02.14 |
[백준] 21610번 마법사 상어와 비바라기 (0) | 2024.02.01 |
[백준] 21608번 상어 초등학교 파이썬 풀이 (0) | 2024.01.31 |
[백준] 4195번 친구 네트워크 파이썬 풀이 (0) | 2024.01.23 |