4/10 정렬

JK·2023년 4월 11일
0

sort 함수 기본

List.sort()

list.sort() 메서드는 list 객체 자체를 정렬해주는 함수입니다.
리스트에만 사용이 가능합니다. list 객체의 멤버 함수, 즉 메서드입니다.

list.sort() 함수는 기본적으로 리스트를 오름차순으로 정렬해주는 기능을 합니다.

파이썬 오름차순, 내림차순 정렬
리스트.sort() 함수에는 reverse 옵션(매개변수)이 존재합니다.
디폴트는 리스트.sort(reverse=False) 인 게 디폴트여서 리스트가 오름차순으로 정렬이 되는 것이고
리스트.sort(reverse=True)로 변경하면 리스트가 내림차순으로 정렬이 됩니다.

a = [3, 2, 8, 4, 1, 10, 99, 5]
b = [3, 2, 8, 4, 1, 10, 99, 5]
c = [3, 2, 8, 4, 1, 10, 99, 5]

기본값 (오름차순)

a.sort()
print("a.sort()")
print(a)

오름차순

b.sort(reverse=False)
print("b.sort(reverse=False)")
print(b)

내림차순

c.sort(reverse=True)
print("c.sort(reverse=True)")
print(c)

위처럼 세 가지 동일한 리스트가 있다고 할 때
sort(), sort(reverse=False), sort(reverse=True)로 정렬을 해보았습니다.

이렇게 오늘은 파이썬 리스트 자체를 정렬하는 sort 함수에 대해서 알아보았습니다.

활용 문제

문제 링크

수 정렬하기

시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율
1초 128MB 167580 95373 65919 57.914%

문제
N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오.

입력
첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다.

출력
첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다.

예제 입력 1
5
5
2
3
4
1

예제 출력 1
1
2
3
4
5

n = int(input())

num_up = []
for _ in range(n):
    a = int(input())
    num_up.append(a)

num_set = set(num_up)
num_up = list(num_set)
num_up.sort()

for i in num_up:
    print(i)

문제 링크

[Bronze I] 수 정렬하기 3 - 10989

성능 요약
메모리: 31256 KB, 시간: 9796 ms

분류
정렬

문제 설명
N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오.

입력
첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다.

출력
첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다.

import sys
num = int(sys.stdin.readline())

count = [0] * 10001
for _ in range(num):
    a = int(sys.stdin.readline())
    count[a] += 1
    
for i in range(10001):
    while count[i] > 0:
        print(i)
        count[i] -= 1
profile
^^

0개의 댓글