알고리즘/baekjoon

[백준/파이썬] 나이순 정렬, 좌표 정렬하기, 수 정렬하기3

jungeun960 2021. 6. 21. 16:20

유형별 문제 풀이 - 기본 정렬 알고리즘 - 02. 핵심 유형 문제풀이

# 10814 나이순 정렬

-> 문제유형 : 정렬

n = int(input())
n_list = []
for i in range(n):
    age, name = list(input().split())
    n_list.append([int(age),name])

n_list.sort(key=lambda x :x[0])
for i in n_list:
    age, name = i
    print(age, name)

 

# 11650 좌표 정렬하기

-> 문제유형 : 정렬

n = int(input())
n_list = []
for i in range(n):
    x,y = list(map(int, input().split()))
    n_list.append((x,y))

n_list.sort(key=lambda x:(x[0],x[1]))
# 파이썬의 기본 정렬 라이브러리는 기본적으로 튜플의 인덱스 순서대로 오름차순 정렬한다
# 때문에 sort()만 해줘도 알아서 x좌표, y좌표 순으로 정렬해줌
# n_list.sort()

for x,y in n_list:
    print(x,y)

 

# 10989 수 정렬하기 3

-> 문제유형 : 정렬

point. 데이터 개수 최대 10,000,000 -> 시간복잡도 O(N)의 정렬 알고리즘 사용 -> 계수 정렬 사용하기

import sys
input = sys.stdin.readline
n = int(input())
n_list = [0]*10001

for i in range(n):
    n_list[int(input())] +=1

for i in range(10001):
    if n_list[i] !=0:
        for j in range(n_list[i]):
            print(i)
반응형