문제
n명의 씨름선수 중 A라는 선수보다 키도 크고 몸무게도 더 나가면 A 선수는 선출되지 못한다. 이때 n명의 선수 중 선출될 수 있는 선수는 몇명인지 구하여라
문제 풀이 - 1
n = int(input())
player = [tuple(map(int,input().split())) for _ in range(n)]
cnt = 0
player.sort(reverse = True)
end_weight = 0
fp = 0
#키순으로 정렬하면 그 전에 사람보다 키가 작으니 몸무게를 비교해야 된다.
for h,w in player:
if fp < h:
cnt +=1
end_weight = w
fp = h
elif fp > h:
if end_weight < w:
cnt += 1
end_weight = w
print(cnt)
- 키를 기준으로 정렬했다. (큰 선수부터 비교하는 식으로 진행했다.)
- 이때 키를 기준으로 정렬했기 때문에 키는 신경쓰지 않고 마지막 선수와 현재 선수의 몸무게를 비교해 현재 선수가 몸무게가 더 나가면 선출될 수 있도록 한다.
문제 풀이 - 2
n = int(input())
player = [tuple(map(int,input().split())) for _ in range(n)]
player.sort(reverse = True)
cnt = 0
weight = 0
for h, w in player:
if w > weight:
weight = w
cnt += 1
print(cnt)
해당 몸무게만 비교하면 되기에 현재 선수의 몸무게가 전 선수 몸무게 보다 크면 선출 !!
'자료구조와 알고리즘 > 개인적인 코딩테스트 관련 풀이' 카테고리의 다른 글
[이분탐색(결정알고리즘)][그리디 알고리즘] - 침몰하는 타이타닉(그리디 알고리즘) (0) | 2022.07.12 |
---|---|
[이분탐색(결정알고리즘)][그리디 알고리즘] - 창고 정리(그리디 알고리즘) (0) | 2022.07.12 |
[이분탐색(결정알고리즘)][그리디 알고리즘] - 회의실 배정(그리디 알고리즘) (0) | 2022.07.11 |
[이분탐색(결정알고리즘)][그리디 알고리즘] - 마굿간 정하기(결정 알고리즘) (0) | 2022.07.11 |
[이분탐색(결정알고리즘)][그리디 알고리즘] - 뮤직비디오(결정 알고리즘) (0) | 2022.07.09 |