-
BOJ #2750 수 정렬하기BOJ 2021. 1. 29. 12:51
문제
N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오.
입력
첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다.
출력
첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다.
소스코드(C언어)
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> int main() { int N; scanf("%d", &N); int arr[1000] = { 0 }; for (int i = 0; i < N; i++) { scanf("%d", &arr[i]); } int j, tmp; for (int i = 0; i < N; i++) { j = i - 1; tmp = arr[i]; while (j>=0 && arr[j] > tmp) { arr[j + 1] = arr[j]; j = j - 1; } arr[j + 1] = tmp; } for (int i = 0; i < N; i++) { printf("%d\n", arr[i]); } return 0; }
Idea
삽입 정렬을 사용한다.
삽입정렬이란?
→ 현재 위치에서, 자신보다 아래에 있는 요소들과 비교하여 자기가 들어갈 자리를 찾아, 해당 자리에 삽입하는 알고리즘이다.
'BOJ' 카테고리의 다른 글
BOJ #11279 최대 힙 (0) 2021.01.29 BOJ #2751 수 정렬하기 2 (0) 2021.01.29 BOJ #15829 Hashing (0) 2021.01.19 BOJ #18111 마인크래프트 (0) 2021.01.19 BOJ #10816 숫자 카드 2 (0) 2021.01.19