알고리즘 문제풀이

백준 - 국영수 10825 (Python)

2023. 2. 27. 00:08
목차
  1.  
  2. 문제설명
  3. 입력
  4. 출력
  5. 예제입력 / 예제출력
  6.  
  7. 문제이해 및 코드정리
  8. 코드
반응형
[Silver IV] 국영수 - 10825
https://www.acmicpc.net/problem/10825

 

 

문제설명

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

  1. 국어 점수가 감소하는 순서로
  2. 국어 점수가 같으면 영어 점수가 증가하는 순서로
  3. 국어 점수와 영어 점수가 같으면 수학 점수가 감소하는 순서로
  4. 모든 점수가 같으면 이름이 사전 순으로 증가하는 순서로 (단, 아스키 코드에서 대문자는 소문자보다 작으므로 사전순으로 앞에 온다.)

 

입력

첫째 줄에 도현이네 반의 학생의 수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 한 줄에 하나씩 각 학생의 이름, 국어, 영어, 수학 점수가 공백으로 구분해 주어진다. 점수는 1보다 크거나 같고, 100보다 작거나 같은 자연수이다. 이름은 알파벳 대소문자로 이루어진 문자열이고, 길이는 10자리를 넘지 않는다.



출력

문제에 나와있는 정렬 기준으로 정렬한 후 첫째 줄부터 N개의 줄에 걸쳐 각 학생의 이름을 출력한다.



예제입력 / 예제출력

 

문제이해 및 코드정리

아주 간단한 정렬문제이다.

대표적 정렬함수인 sort함수에 key로  lambda 표현식을 사용하여 문제에 적용시켜보았다.

코드를 보면 앞에서부터 우선순위로 적용하여 정렬을 시켜준다. -를 사용하면 큰 수부터 먼저나오는 내림차순을 사용할 수 있다. 

코드

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

arr = []

for _ in range(n):
    arr.append(input().split())

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

for i in arr:
    print(i[0])
반응형

'알고리즘 문제풀이' 카테고리의 다른 글

백준 - 큐 10845(Python)  (0) 2023.02.27
백준 - 스택 10828(Python)  (0) 2023.02.27
백준 - 차이를 최대로 10819(Python)  (0) 2023.02.26
백준 - 제로 10773 (Python)  (0) 2023.02.26
백준 - 보물 1026 ( Python)  (0) 2023.02.25
  1.  
  2. 문제설명
  3. 입력
  4. 출력
  5. 예제입력 / 예제출력
  6.  
  7. 문제이해 및 코드정리
  8. 코드
'알고리즘 문제풀이' 카테고리의 다른 글
  • 백준 - 큐 10845(Python)
  • 백준 - 스택 10828(Python)
  • 백준 - 차이를 최대로 10819(Python)
  • 백준 - 제로 10773 (Python)
coryne
coryne
반응형
coryne
coryne의 정리노트
coryne
전체
오늘
어제
  • 분류 전체보기 (56)
    • python (2)
    • Web programing (1)
    • Linux (3)
    • Deep Learning (0)
    • 기타 (0)
    • 알고리즘 문제풀이 (49)
    • 빅데이터분석기사 (0)
    • 알고리즘 이론 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • EduAtoZ
  • 깊이 우선 탐색
  • machine_learning
  • 우선순위 큐
  • 큐
  • 빅데이터분석기사
  • 그리디 알고리즘
  • 출처 : eduatoz
  • 자료구조
  • 정렬
  • 자료 구조(data_structures)
  • 자료 구조
  • 브루트포스 알고리즘
  • 다이나믹 프로그래밍
  • 너비 우선 탐색
  • 빅데이터분석기사 실기
  • 데이크스트라
  • 그래프 탐색
  • 문자열
  • 스택
  • Python
  • 플로이드-워셜
  • 그래프 이론
  • 공공데이터일경험수련생
  • 정수론
  • 수학
  • pandas
  • 백준
  • 소수 판정
  • 구현

최근 댓글

최근 글

hELLO · Designed By 정상우.
coryne
백준 - 국영수 10825 (Python)
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.