본문 바로가기
Algorithm/etc

[파이썬] 백준 - 13단계 정렬

by 베짱이28호 2023. 4. 17.

[파이썬] 백준 - 13단계 정렬


수 정렬하기 (2750)

N = int(input())
temp = []
for i in range(N):
    a = int(input())
    temp.append(a)
temp.sort()
for i in temp :
    print(i)

대표값2 (2587)

temp = []
for i in range(5):
    a = int(input())
    temp.append(a)
temp.sort()
print(int(sum(temp)/5))
print(temp[2])

커트라인 (25305)

N,k = map(int,input().split())
score = list(map(int,input().split()))
score.sort()
print(score[-k])

수 정렬하기2 (2751)

import sys
N = int(input())
temp_m,temp_p = [],[]
for i in range(N):
    a = int(sys.stdin.readline())
    if a>=0 :
        temp_p.append(a)
    else :
        temp_m.append(a)
temp_p.sort()
temp_m.sort()
for i in temp_m :
    print(i)
for i in temp_p :
    print(i)

수 정렬하기3 (10989)

import sys
N = int(input())
table = {}
for i in range(N):
    a = int(sys.stdin.readline())
    if a in table :
        table[a] += 1
    else :
        table[a] = 1
table1 = dict(sorted(table.items(),key=lambda x:x[0]))
num = list(table1.keys())
for i in num :
    for j in range(table[i]):
        print(i)

소트인사이드 (1427)

N = int(input())
N_str = str(N)
N_list = list(N_str)
N_list.sort(reverse=True)
answer = ''.join(N_list)
print(int(answer))

좌표정렬하기 (11650)

N = int(input())
temp = []
for i in range(N):
    x,y = map(int,input().split())
    temp.append([x,y])
temp.sort()
for i in range(N):
    print(temp[i][0],temp[i][1])

좌표정렬하기2 (11651)

N = int(input())
temp = []
for i in range(N):
    x,y = map(int,input().split())
    temp.append([y,x])
temp.sort()
for i in range(N):
    print(temp[i][1],temp[i][0])

단어정렬 (1181)

N = int(input())
temp= {}
for i in range(N):
    s = str(input())
    temp[s] = len(s)
answer = list(temp.items())
answer.sort(key = lambda x:(x[1],x[0]))
for i in range(len(answer)):
    print(answer[i][0])

나이순 정렬 (10814)

N = int(input())
temp= []
for i in range(N):
    age,name = input().split()
    temp.append([int(age),name,i])
temp.sort(key = lambda x:(x[0],x[2]))
for i in range(len(temp)):
    print(temp[i][0],temp[i][1])

좌표압축 (18870)

N = int(input())
arr = list(map(int,input().split()))
arr_set = set(arr)
arr_list = list(arr_set)
arr_list.sort()
temp = [i for i in range(len(arr_list))]
table = dict(zip(arr_list,temp))
for i in range(N):
    print(table[arr[i]],end=' ')

크기 순으로 매핑해서 딕셔너리에 추가하면 해시라서 빠르게 접근 가능

 


전체적으로 람다 표현식을 사용해서 다중 조건이 있어도 쉽게 풀었네요

댓글