>
[문제]
N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오.

https://www.acmicpc.net/problem/2750
2750번: 수 정렬하기
첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다.
www.acmicpc.net
🎨 풀이
💡 전체 코드
n = int(input())
num = []
for _ in range(n):
num.append(int(input()))
for _ in range(n):
for i in range(0,n-1):
if num[i] > num[i+1]:
tmp = num[i]
num[i] = num[i+1]
num[i+1] = tmp
for i in range(n):
print(num[i])
> 핵심 : 순서대로 비교하기
🍦 코드 설명 (실행 순서대로 나열)
# main
n = int(input())
num = []
for _ in range(n):
num.append(int(input()))
1. n을 입력받는다.
2. for문을 이용해 num에 값을 입력받는다.
@ for문 (2번~4번)
for _ in range(n):
for i in range(0,n-1):
if num[i] > num[i+1]:
tmp = num[i]
num[i] = num[i+1]
num[i+1] = tmp
3. for문 두 개를 실행한다.
- 위에 있는 for문은 첫번째부터 천천히 쭉 가는 거고, 두 번째 for문은 중간에 바꿀 게 있으면 바꿔주는 용이다.
- 밑에 있는 그림을 보면 그 이유를 이해하기 쉽다.
4. 만약, num[i]가 num[i+1]보다 크다면, 그 둘을 바꿔준다.

for i in range(n):
print(num[i])
5. for문을 이용해서 정렬되어있는 수를 하나씩 출력한다.

끝~
⭐ 느낀점
> 좀 다른 식으로 풀이를 써보긴 했는데, 잘했는지는 살짝 모르겠다. 내일 다시 한 번 봐야겠따. 굿굿.
'🎲 알고리즘 공부 > 백준' 카테고리의 다른 글
[백준] 10817번 - 세 수 (파이썬) (0) | 2022.08.21 |
---|---|
[백준] 10886번 - 0 = not cute / 1 = cute (파이썬) (0) | 2022.08.20 |
[백준] 2231번 - 분해합 (파이썬) (0) | 2022.08.16 |
[백준] 25304번 - 영수증 (파이썬) (0) | 2022.08.15 |
[백준] 3003번 - 킹, 퀸, 룩, 비숍, 나이트, 폰 (파이썬) (0) | 2022.08.14 |