이숭간 공부기록

백준 10814번 파이썬 _ 나이순 정렬 본문

알고리즘/백준

백준 10814번 파이썬 _ 나이순 정렬

이숭간 2021. 2. 14. 00:19
728x90

www.acmicpc.net/problem/10814

 

10814번: 나이순 정렬

온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을

www.acmicpc.net

문제유형 : 정렬

문제풀이 : 

  • 사용자들 정보가 담긴 배열의 원소를 튜플로 저장 , 튜플의 형태는 (나이, 이름, 가입한순서) 
  • 정렬하는데 1순위 나이, 2순위 가입한순서로 정렬
  • 출력은 나이, 이름

파이썬 튜플정리 !

  • 튜플은 생성후 변경 불가능 (삽입, 삭제 불가능)
  • 소괄호를 이용해 선언
  • + 연산자를 이용해 튜플 2개를 한개의 튜플로 합칠 수 있다.
  • 슬라이스 기능 이용가능 (리스트와 방법 동일)
  • len(), max(), min(), index(), count() 사용가능 
  • 리스트 -> 튜플로 변환가능 tuple()로 감싸서 

정답코드 :

import sys
input = sys.stdin.readline

n = int(input())
array = []

for i in range(n):
    age, name = input().split()
    array.append((int(age),name,int(i))) #튜플에 3가지원소를 담아 배열에 추가

array.sort(key=lambda x: (x[0], x[2])) # 나이 -> 가입순서를 기준으로 정렬 

for i in array:
    print(i[0], i[1]) #나이, 이름순으로 출력