[백준/Python] 10825번 - 국영수

Sujin Lee·2022년 9월 1일
0

코딩테스트

목록 보기
103/172
post-thumbnail

문제

백준 10825번 - 국영수

해결 과정

    1. 국어 점수가 감소하는 순서 -> 국어 점수 기준으로 내림차순
    1. 영어 점수가 증가하는 순서 -> 영어 점수 기준으로 오름차순
    1. 수학 점수가 감소하는 순서 -> 수학 점수 기준으로 내림차순
    1. 이름 사전 순으로 증가 -> 이름 기준으로 오름차순
  • student.sort(key = lambda x:(-int(x[1]),int(x[2]),-int(x[3]),x[0]))
    • sort는 기본값 오름차순 정렬
    • reverse = True을 하지 않은 이유: 이름을 사전 순으로 증가하도록 만드는 (?) 방법을 모르겠어서 디폴트를 오름차순으로 하고 숫자들에 -를 붙여서 내림차순으로 변경했음
    • int(x[1])은 오름차순 -> -int(x[1])는 내림차순
    • int(x[2])은 오름차순
    • int(x[3])은 오름차순 -> -int(x[3])는 내림차순
    • x[0]은 오름차순

시행착오

풀이

import sys

n = int(sys.stdin.readline())
student = []

for _ in range(n):
  student.append(sys.stdin.readline().split())

student.sort(key = lambda x:(-int(x[1]),int(x[2]),-int(x[3]),x[0]))

for i in student:
  print(i[0])
profile
공부한 내용을 기록하는 공간입니다. 📝

0개의 댓글