본문 바로가기
CS(Computer Science)/PS

정렬 알고리즘

by tonyhan18 2022. 1. 3.
728x90

기술들

정렬시

ans.sort()
ans.sort(reverse=True)

해야지 sorted로 한것과 다르게 받아오기 쉬움

인자가 1개일때

2751

import sys
sys.stdin = open('./python/input.txt','r')
input = sys.stdin.readline

t = int(input())
ans = list(int(input()) for _ in range(t))
ans.sort()

print('\n'.join(map(str,ans)))

인자가 2개일때

11650 좌표정렬하기

import sys
sys.stdin = open('./python/input.txt','r')
input = sys.stdin.readline

t = int(input())
ans = list(list(map(int, input().split())) for _ in range(t))
ans.sort()
for i in range(t):
  print(ans[i][0], ans[i][1])

11651 좌표정렬하기2 - 2차원 배열, lambda로 기준 2개 만들기

https://haesoo9410.tistory.com/193

import sys
sys.stdin = open('input.txt','r')
input = sys.stdin.readline

n = int(input())
ans = list(list(map(int, input().split())) for _ in range(n))

ans.sort(key=lambda x : (x[1], x[0]))
for i in range(n):
    print(ans[i][0],ans[i][1])

10814 나이순 정렬 - 문자열이 포함된 자료의 정렬

import sys
sys.stdin = open('input.txt','r')
input = sys.stdin.readline

n = int(input())
ans = list(list(input().split()) for _ in range(n))

ans.sort(key=lambda x : (int(x[0])))

for i in range(n):
    print(ans[i][0],ans[i][1])

 

11652 카드 - 딕셔너리 정렬

import sys
sys.stdin = open("input.txt","r")
input = sys.stdin.readline

n = int(input())
dic = {}
for i in range(n):
    t = int(input().strip())
    if(t in dic):
        dic[t] += 1
    else:
        dic[t] = 1
ans = sorted(dic.items(), key=lambda x : (-x[1],x[0]))
print(ans[0][0])

 

1377 버블소트 - 정렬인덱스

import sys
sys.stdin = open("input.txt","r")
input = sys.stdin.readline

n = int(input())
data = list([int(input()), i] for i in range(n))
#print(data)
sorted_data = sorted(data)
#print(sorted_data)
ans = list((sorted_data[i][1] - data[i][1]) for i in range(n))
print(max(ans) + 1)

위와같이 인덱스 위치가 큰 의미를 가지는 문제였다.

728x90