728x90

https://www.acmicpc.net/problem/15905

 

15905번: 스텔라(STELLA)가 치킨을 선물했어요

경인지역 6개대학 연합 프로그래밍 경시대회 shake! 는 아주대학교, 경희대학교, 성균관대학교, 인하대학교, 한국항공대학교, 한양대학교ERICA가 함께하는 대학교 자체 연합 대회이다. shake! 는 매

www.acmicpc.net

 

필요 개념

  • 익명함수
  • sorted 함수
  • 리스트 인덱싱

 

풀이과정

패널티는 같을 수 없다는 조건 덕분에 쉬워진 문제이다.

익명함수를 이용한 정렬에서 풀어낸 문제 수는 내림차순으로, 패널티는 오름차순을 기준으로 정렬한다.

 

그 후 6등부터 꼴등까지의 범위에서 5등과 풀어낸 문제 수가 같은 참가자 수만 카운팅해주면 된다.

이때 for 문에서 인덱싱은 단순히 i+4 로 접근할 경우 index out of range 오류가 나타나므로 '-'를 이용해 인덱싱한다. 

 

# 5등과 패널티 차이로 수상 못한 학생에게만(6등부터 카운팅 시작)

N = int(input())

student = []
for i in range(N):
    student.append(list(map(int, input().split())))

student = sorted(student, key = lambda x: [-x[0], x[1]])

cnt = 0

if N == 5:
    cnt = 0
else:
    for i in range(1, N-4): # out of range 오류 피하기 위해 '-' 이용하여 인덱싱
        if student[-i][0] == student[4][0]:	# 5등과 등수가 같은 경우에만 카운팅
            cnt += 1

print(cnt)
728x90

+ Recent posts