[파이썬] 백준 2750 : 수 정렬하기

asaei623·2023년 1월 27일
0

[Algorithm] 정렬

목록 보기
2/6

백준 2750 : 수 정렬하기 바로가기

버블 정렬을 활용한 풀이

버블 정렬의 로직은 다음과 같다.

  1. 인접한 두 원소를 비교한다.
  2. [왼쪽 원소] > [오른쪽 원소] 라면 swap! 한다.
  3. 가장 큰 원소부터 오른쪽에 정렬된다.
  4. 데이터가 하나씩 정렬되면서 비교에서 제외된다.

풀이

# 입력
n = int(input())

num = []

for i in range(n):
    num.append(int(input()))

# 정렬
for i in range(1, n):
    for j in range(n-i):
        if num[j] > num[j+1]:  # 왼쪽 값이 클 경우 swap
            tmp = num[j]
            num[j] = num[j+1]
            num[j+1] = tmp

# 출력
for i in range(n):
    print(num[i])

정렬함수를 활용한 풀이

정렬 함수를 사용하면 훨씬 간단하게 풀이 할 수 있다.
리스트의 메소드인 sort() 함수를 사용하면 원래의 리스트가 정렬된 상태로 변경된다.

풀이

# 입력
n = int(input())
num = []

for i in range(n):
    num.append(int(input()))

# 정렬
num.sort()

# 출력
for i in range(n):
    print(num[i])

244ms가 걸린 버블 정렬에 비해 정렬 함수는 96ms 밖에 걸리지 않았다.

0개의 댓글