DHistory
[Baekjoon] Greedy - 2790 F7 (오답노트) 본문
문제
2790번: F7
권위를 자랑하는 레이싱 대회 F7이 열릴 예정이다. F7은 드라이버의 순위가 자주 바뀌기 때문에 사람들에게 인기가 아주 많다. 상근이는 F7 레이싱의 엄청난 팬이지만, 마지막 레이싱과 중간고사
www.acmicpc.net
풀이
"""
마지막 레이싱을 제외한 나머지 레이싱 모두 종료
F7의 우승자는 각 레이싱을 통해서 얻은 점수의 합이 가장 높은 사람이 우승 (동점인 경우 전부 우승자)
마지막 레이싱에서 1등을 한 사람은 N점을 얻고 2등은 N-1... N등은 1점을 얻는다.
각 레이싱에서 두 드라이버의 등수가 같은 경우는 없다.
우승할 가능성이 있는 사람의 수를 구하시오.
8 4 = 12
9 3 = 12
10 2 = 12
8 1 = 9
12 5 = 17
14 4 = 18
14 3 = 17
15 2 = 17
15 1 = 16
1. 나 => 1등을 한 경우 (2~3 점수보다 크거나 같으면 우승할 수 있다.)
2. 나를 제외한 가장 작은 수 => 2등하는 경우
3. 나를 제외한 가장 큰 수 => (동일 점수 인 경우 위로 올라가는 내용 고려)꼴지하는 경우
"""
import sys
n = int(sys.stdin.readline().rstrip())
racer = []
for _ in range(n):
racer.append(int(sys.stdin.readline().rstrip()))
def solution(racer):
n = len(racer)
answer = 1
racer = sorted(racer, reverse=True)
score = racer[-1] + 1
for i in range(1, n):
if racer[i] + n >= score:
answer += 1
# 같은 점수가 연속으로 나오는 경우 점수가 증가한다.
score = max(score, racer[i] + (i + 1))
return answer
print(solution(racer))
채점 결과
'Computer Science > Algorithm' 카테고리의 다른 글
[Baekjoon] Greedy - 2872 우리집엔 도서관이 있어 (오답노트) (0) | 2023.08.28 |
---|---|
[Baekjoon] Greedy - 2777 숫자 놀이 (오답노트) (0) | 2023.08.28 |
[Baekjoon] Greedy - 14247 나무 자르기 (0) | 2023.08.25 |
[Baekjoon] Greedy - 15729 방탈출 (0) | 2023.08.25 |
[Baekjoon] Greedy - 16112 5차 전직 (0) | 2023.08.25 |