본문 바로가기

Algorithm/정렬

[이것이 취업을 위한 코딩테스트다] 06. 정렬

01. 위에서 아래로

import sys
input=sys.stdin.readline

n=int(input())
arr=[]
for _ in range(n):
    arr.append(int(input()))
arr.sort(reverse=True)
print(*arr)

 

02. 성적이 낮은 순서로 학생 출력하기

* sorted와 key*

  • key = abs -> 절댓값을 기준으로 정렬
  • key = len ->  문자열을 길이를 기준으로 정렬
  • key = lambda x : (len, x)) -> 문자열의 길이를 기준으로 정렬하되, 길이가 동일하면 사전 순으로 정렬
import sys
input=sys.stdin.readline

n=int(input())
arr=[]
for _ in range(n):
    name,grade=input().rstrip().split()
    arr.append((name,int(grade)))
arr=sorted(arr,key=lambda x: x[1])
for i in range(n):
    print(arr[i][0],end=" ")

 

03. 두 배열의 원소 교체

import sys
input=sys.stdin.readline

n,k=map(int,input().split())
a=list(map(int,input().split()))
b=list(map(int,input().split()))

a=sorted(a) # 오름차순 정렬
b=sorted(b, reverse=True) # 내림차순 정렬
for i in range(k):
    a[i],b[i]=b[i],a[i]
print(sum(a))