Algorithm/알고리즘 문제풀이
백준 2750 파이썬 - 수 정렬하기(버블정렬)
devraphy
2021. 8. 23. 17:16
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)