[이코테] 정렬 - 국영수 with 파이썬

JIN KANG·2022년 10월 21일
0

이코테

목록 보기
23/29
post-thumbnail

1. 문제

  • 백준 10825와 동일한 문제
  • 이름, 국,영,수 로 들어오는 데이터를 조건에 맞게 정렬하라.

2. 아이디어

  • 여러 줄을 반복해서 입력하므로 sys.stdin.readline 활용한다.
  • sort를 이용한 정렬
  • lambda 함수를 이용해서 각 조건들을 동시에 적용한다.
    • 내림차순의 경우에는 "-" 를 붙인다.

3. 예제 코드

import sys
input = sys.stdin.readline
n = int(input())

## 입력 : 이름, 국어, 영어, 수학
students = []
for _ in range(n):
    students.append(input().split())
    
## 조건 : 국어 (내림), 영어 (오름), 수학 (내림), 이름 (오름) 

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

## 출력 : 이름만 
for student in students:
    print(student[0])

4. 배운점

  • sys.stdin.readline 다시 상기
  • sort 정렬 방법 다시 상기
    • lambda 함수 안에서 - 이면, 내림차순 , + 이면 오름차순, 여러 조건일 경우 괄호로 묶는다.

참조

  • 이것이 취업을 위한 코딩테스트다. with 파이썬
profile
성장하는 데이터 분석가

0개의 댓글