본문 바로가기
알고리즘/백준 알고리즘

[Baekjoon] 백준 알고리즘: 2750 - 수 정렬하기

by 며루치꽃 2021. 3. 1.

1. 문제

www.acmicpc.net/problem/2750

 

2750번: 수 정렬하기

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

www.acmicpc.net

2. 내가 생각했던 풀이과정

 

1) 빈 리스트에 숫자를 입력받는다.

2) 파이썬 sort를 통해 입력받은 숫자를 정렬한다

3) 반복문을 통해 한 줄씩 출력한다

 

3. 나의 풀이

n = int(input())

temp = []
for i in range(n):
    temp.append(int(input()))
    temp.sort()
for j in range(n):
    print(temp[j])

4. 다른 사람의 풀이

testCase = int(input()) 
num = [] 
save = 0 
for i in range(testCase): 
  num.append(int(input())) 
for j in range(testCase): 
  for k in range(testCase-(j+1)): 
      if num[k] >= num[k+1]: #뒤에꺼가 더 큰 경우 
          save = num[k+1] 
          num[k+1] = num[k] 
          num[k] = save 
for l in num: 
    print(l)

버블 소트를 이용하여 정렬을 이용하는 방법이 있었다.

1) 수를 먼저 반복문을 통해 입력받는다

2) 반복문에서 앞의 수와 뒤의 수를 비교하여 큰 수를 뒤로 저장하고, 작은 수를 앞에 저장하고 이를 반복한다

3) 버블 소트로 정렬되어있는 수를 정렬한다.

5. 새로 알게된 점

 

댓글