본문 바로가기
Algorithm/알고리즘 문제풀이

백준 2750 파이썬 - 수 정렬하기(버블정렬)

by devraphy 2021. 8. 23.

1. 문제 링크

https://www.acmicpc.net/problem/2750

 

2750번: 수 정렬하기

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

www.acmicpc.net


2. 나는 어떻게 생각했는가? 

- 이번 문제는 사실 간단한 풀이가 존재한다. 

- 하지만 풀기 간단한 만큼 버블정렬을 연습하기 좋은 문제다. 

- 버블정렬을 사용한다면, 다음과 같이 풀 수 있다. 

from typing import List
from sys import stdin

input = stdin.readline

def bubble_sort (case: List[int]) -> List[int]:
  for idx in range(len(case) - 1):
    for j in range(len(case) - idx - 1):
      if case[j] > case[j + 1]:
        case[j], case[j + 1] = case[j + 1], case[j]
  return case

t = int(input())
case = []

for _ in range(t):
  case.append(int(input()))

for data in bubble_sort(case):
  print(data)

 

- 만약 버블정렬이 아니라 파이썬의 기본 정렬 라이브러리를 사용한다면

- 다음과 같이 간단한 코드로 풀 수 있다.

# 파이썬 정렬 라이브러리를 사용하면 
t = int(input())
result = [] 
for _ in range(t):
  result.append(int(input()))

result.sort()
for data in result:
  print(data)

댓글