문제
현수는 씨름 감독입니다. 현수는 씨름 선수를 선발공고를 냈고, N명의 지원자가 지원을 했습
니다. 현수는 각 지원자의 키와 몸무게 정보를 알고 있습니다.
현수는 씨름 선수 선발 원칙을 다음과 같이 정했습니다.
“다른 모든 지원자와 일대일 비교하여 키와 몸무게 중 적어도 하나는 크거나, 무거운 지원자
만 뽑기로 했습니다.”
만약 A라는 지원자보다 키도 크고 몸무게도 무거운 지원자가 존재한다면 A지원자는 탈락입니
다.
▣ 입력설명
첫째 줄에 지원자의 수 N(5<=N<=50)이 주어집니다.
두 번째 줄부터 N명의 키와 몸무게 정보가 차례로 주어집니다. 각 선수의 키와 몸무게는 모두
다릅니다.
▣ 출력설명
첫째 줄에 씨름 선수로 뽑히는 최대 인원을 출력하세요.
▣ 입력예제 1
5
172 67
183 65
180 70
170 72
181 60
▣ 출력예제 1
3
출력설명
(183, 65), (180, 70), (170, 72)가 선발됩니다. (181, 60)은 (183, 65) 때문에 탈락하고, (172, 67)은
(180, 70) 때문에 탈락합니다.
풀이
n = int(input())
people = []
for _ in range(n):
h, w = map(int, input().split())
people.append((h,w))
people.sort(reverse=True)
cnt = 0
largest = 0
for s,e in people:
if e >= largest:
largest = e
cnt += 1
print(cnt)
설명
정렬 할 때 이전 문제 처럼 lambda 함수를 이용해서 하려고 하다 보니 잘 되지 않았었다.
키로 먼저 내림차순 정렬을 하면 그 뒤에 몸무게는 본인보다 키 큰 사람들의 몸무게보다는 무조건 크면 된다.
'Coding Test > Python' 카테고리의 다른 글
| [백준] 나머지 합 (0) | 2023.07.01 |
|---|---|
| [백준] 구간 합 구하기 5 (0) | 2023.07.01 |
| [Python] 회의실 배정(그리디) (0) | 2023.06.28 |
| [프로그래머스] 바탕화면 정리 (0) | 2023.06.18 |
| [프로그래머스] 조건 문자열 (0) | 2023.06.14 |