조금씩 꾸준히 완성을 향해

[Algorithm] 백준 2750 수 정렬하기 with Python 본문

DataStructure & Algorithm/문제풀이

[Algorithm] 백준 2750 수 정렬하기 with Python

all_sound 2022. 10. 3. 21:27

문제

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())
l = []
for _ in range(n):  # 입력을 받아와 리스트로 만들기
    a = int(input())
    l.append(a)

for j in range(len(l)-1):  # 자리 바꾸기 작업을 완전히 오름차순 정렬이 될 때까지 반복
    for i in range(len(l)-1): # 현재 수를 다음 수와 비교해서 크면 자리 바꾸기
        if l[i] > l[i+1]:     
            l[i], l[i+1] = l[i+1], l[i]
for i in l:
    print(i)

 

sort 함수를 쓰면 정말 간단히 해결할 수 있다는 걸 알지만, 그렇게 넘어가면 사고력에 진전이 없을 것 같아 직접 구현을 해보았다. 확신을 갖고 차례대로 짠 코드는 아니지만, 어쨌든 짜긴 짰다.....ㅋㅋㅋ

맞았다고 뜨는 걸 보며 깜짝 놀라며  '어? 이게 되네?' 를 외쳤다. 

 

 

 

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

 

2750번: 수 정렬하기

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

www.acmicpc.net