티스토리 뷰

코딩테스트

국영수

ajaa 2024. 12. 7. 20:30

📌문제

도현이네 반 학생 N명의 이름과 국어, 영어, 수학 점수가 주어진다. 이때 다음과 같은 조건으로 학생의 성적을 정렬하는 프로그램을 작성하시오.

1. 국어 점수 감소하는 순서

2. 국어 점수 같으면 영어 점수 증가하는 순서

3. 국어 영어 점수 같으면 수학 점수 감소하는 순서

4. 모든 점수 같으면 이름이 사전 순으로 증가하는 순서

 

📌풀이

튜플을 원소로 하는 리스트가 있을 때 리스트를 정렬하면 각 튜플을 구성하는 원소의 순서에 맞게 정렬

만약 튜플이 3개의 원소로 구성된다면 첫번째 원소의 순서에 맞게 정렬, 첫번째 원소 값이 같은 경우 두번째 원소의 순서에 맞게 정렬, 두번째 원소의 값이 같은 경우 세번째 원소의 순서에 맞게 정렬

sort 함수의 key 속성 사용

📌코드

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])

 

📌참고

https://g.co/kgs/eyd5SSd

 

이것이 취업을 위한 코딩 테스트다 with 파이썬

IT 취준생이라면 누구나 입사하고 싶은 카카오・삼성전자・네이버・라인!취업의 성공 열쇠는 알고리즘 인터뷰에 있다! IT 취준생이라면 누구나 가고 싶어 하는 카카오, 라인, 삼성전자의 2016년

www.google.com

 

 

'코딩테스트' 카테고리의 다른 글

실패율  (1) 2024.12.09
안테나  (0) 2024.12.08
연산자 끼워 넣기  (1) 2024.12.06
괄호 변환  (0) 2024.12.05
경쟁적 전염  (0) 2024.12.04
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함