컴퓨터/문제풀이집
백준 단계별 풀어보기 정렬 편에 있는 가장 첫 번째 문제입니다.
컴퓨터 알고리즘을 배울 때 정렬중에가장 기초 정렬방법은 버블 정렬입니다.
본문은 버블정렬의 개념을 C로 구현하여 풀도록 하겠습니다.
문제를 정리하면 다음과 같습니다.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void) {
//입력 값과 입력 값을 저장할 곳 구현하기
int N;
int Array[1000];
//정렬이 필요한 숫자들의 범위
int Max = 1001;
//버블정렬을 하기위한 요소 인덱스 확인 변수
int Index = 0;
//정렬이 필요한 수 입력받기
scanf("%d", &N);
//N개의 정렬되지 않은 숫자 입력 받기
for (int i = 0; i < N; i++) {
scanf("%d", &Array[i]);
}
//정렬 구현하기
//배열 시작부터 N까지
for (int i = 0; i < N; i++) {
//계속해서 뒤의 요소와 비교하며 스왑
for (int j = 0; j < N - 1; j++) {
if (Array[j] > Array[j+1]) {
int temp = Array[j];
Array[j] = Array[j + 1];
Array[j + 1] = temp;
}
}
}
//정렬된 배열 출력하기
for (int i = 0; i < N; i++) {
printf("%d\n", Array[i]);
}
return 0;
}
사실 소스코드 자체는 버블 정렬의 개념을 알고 있다면 어렵지 않습니다.
단순하게 계속해서 처음부터 끝까지 비교하며 바꿔준다의 개념이기 때문입니다.
알고리즘적 지식을 프로그램 언어로 구현할 수 있느냐가 관건입니다.
요소들을 탐색하는 인덱스가 범위를 초과하지 않도록 하는 방법도 중요합니다.
백준 17478 - 재귀함수가 뭔가요? (C언어 구현) (0) | 2022.05.31 |
---|---|
백준 2798 - 블랙잭 (0) | 2022.05.29 |
백준 2747 / 2748 - 피보나치 수 1,2 (재귀 vs 반복) (0) | 2021.11.25 |
백준 2503 - 숫자 야구(C언어) (0) | 2021.09.20 |
백준 1292 - 쉽게 푸는 문제(C언어) (0) | 2021.08.17 |
91년생 공학엔지니어의 개발일지
TODAY :
YESTER DAY :
TOTAL :
Commnet