[백준/파이썬] 14592번 풀이

업데이트:



문제 정보


풀이

문제

아주대학교 프로그래밍 경시대회(Ajou Programming Contest, APC)는 2009년 제1회를 시작으로 2014년 제6회까지 개최된 아주대학교 학생들을 위한 프로그래밍 경시대회이다. 2017년, 다른 학교에서 활발히 진행되는 교내대회를 보던 현정이는 3년 만에 APC를 부활시키기로 결심했다.

2017 APC 운영 방식은 다음과 같다.

  • 문제는 Small 데이터와 Large 데이터로 이루어져 있다.

  • 문제를 풀기 위해서는 입력 파일을 다운로드 받고, 5분 이내로 이에 맞는 출력 파일과 소스 코드를 업로드해야 한다.

  • Small 데이터 문제를 해결해야 Large 데이터 입력 파일을 다운로드 받을 수 있다.

  • 각 문제의 Small, Large 데이터를 해결하면 점수를 얻을 수 있으며, 이 점수는 각각 다르다.

  • 제출 횟수는 점수를 획득한 문제를 맞기 까지 인풋을 다운로드 받은 횟수의 총합이다.

  • 즉, 점수를 획득하지 못한 문제의 다운로드 횟수는 포함되지 않는다.

위 운영 방식에 따라 순위는 다음과 같이 결정된다. …

입력 요약
첫 번째 줄에는 참가자의 수를 나타내는 자연수 N (1 ≤ N ≤ 3) 이 주어진다.

두 번째 줄부터 N 개의 줄에 걸쳐 세 개의 정수 Si, Ci, Li (0 ≤ Si ≤ 620, 0 ≤ Ci ≤ 50, 0 ≤ Li ≤ 179)가 주어진다.

(1+i) 번째 줄의 각 값은 차례로 i 번째 참가자의 점수, 제출 횟수, 마지막으로 점수를 획득한 문제의 업로드 시간을 나타낸다. 세 값이 모두 같은 참가자는 존재하지 않는다.

출력 요약
1등을 하는 참가자의 번호를 한 줄에 출력한다.

코드

l=[list(map(int,input().split()))+[i+1]for i in range(int(input()))]
t=[]
m=max(l,key=lambda x:x[0])[0]
for i in l:
    if i[0]==m:t.append(i)
l=[]
m=min(t,key=lambda x:x[1])[1]
for i in t:
    if i[1]==m:l.append(i)
print(min(l,key=lambda x:x[2])[3])

설명

핵심은 구현 관점에서 아주대학교 프로그래밍 경시대회(Ajou Programming Contest, APC)는 2009년 제1회를 시작으로 2014년 제6회까지 개최된 아주대학교 학생들을 위한 프로그래밍 경시대회이다. …를 만족하도록 로직을 구성하는 것입니다.

코드는 입력을 파싱한 뒤 조건 분기와 계산을 순서대로 수행하고, 문제에서 요구한 형식으로 결과를 출력합니다.

경계값과 예외 케이스도 함께 고려해 오답이 나기 쉬운 상황을 방지합니다.



다음 읽을거리

관련 허브 페이지에서 같은 주제의 글을 이어서 확인할 수 있습니다.

댓글남기기