리그캣의 개발놀이터

[Python] 코드 그라운드 - 프로그래밍 경진대회 본문

알고리즘/코드그라운드

[Python] 코드 그라운드 - 프로그래밍 경진대회

리그캣 2019. 5. 5. 01:19

삼성 프로그래밍 경진대회는 권위 있는 대회이다. 대회는 여러 라운드를 통해서 진행되며, 모든 라운드에 총 NN명의 응시자가 있다.
각 라운드 별로 1등은 NN점, 2등은 N1N−1점 순으로 순차적으로 점수를 얻게 되고 뒤에서 2등은 2점, 뒤에서 1등은 1점을 얻게 된다.
그리고 각 라운드 별로 동점자는 없으며, 각 라운드 마다 받은 점수의 합이 제일 높은 사람이 우승하게 된다. 
마지막 라운드 직전까지의 점수 합이 주어졌을 때, 우승할 가능성이 있는 응시자의 수를 구하는 프로그램을 작성하시오.
(SCPC 실제 대회 규칙과는 관련이 없습니다.)

 

3명이 각각

5 7 6 의점수가 나왓을때

3이 나와야 한다.

 

예를들어, 5점을 맞은 사람이 3점을 얻으면 7이 1점을 얻어야 우승이 가능하다.

이와 마찬가지로 6점 맞은 사람이 우승하기 위해서는 가장 높은 점수를 받아야 하고 7점은 가장 낮은 점수를 받아야 한다.

7점이 우승하기 위해서는 7점은 그냥 가장 높은 점수를 받아야 한다.

 

 

list = [5,7,6]
one_list = []
max = 0

list.sort(reverse=True) #list = 7,6,5
for n in range(len(list)):
one_list.append(list[n]+n+1) #one_list = 8,8,8
if max <= one_list[n]: #max = 8
max = one_list[n]

result = 0
for n in range(len(list)):
list[n] = list[n]+len(list) #list= 10,9,8
print(list[n])
if list[n] >= max: #result ++, ++, ++
result=result+1
print(result)

Comments