[백준] 2750번 : 수 정렬하기/ C언어

Boknami·2022년 1월 21일
0

백준문제풀이

목록 보기
8/45

📑문제

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


👀 핵심 포인트

숫자를 정렬하는 방법

-> 2학년 1학기에 배웠던 자료구조에서 여러가지 정렬 방법을 배웠는데 그 중에 가장 편하게 사용할 수 있었던게 버블 정렬이라 해당 문제는 버블 정렬을 이용해서 풀었다. 간단하게 배열에 값들을 저장하고 앞에서부터 시작해 2개를 비교해서 만약 인덱스 값이 더 작은 값이 더 큰 값을 가지고 있다면 두 개의 위치를 바꿔주는 형식으로 진행했다. 포인트가 되는 부분은 변수 A를 이용해서 값을 한 번 저장하고 변경하는 것 같다.

for (int k = 0; k < 1000; k++)
	{
		for (int j = 0; j < N - 1; j++)
		{

			if (Ary[j] > Ary[j + 1])
			{
				A = Ary[j];
				Ary[j] = Ary[j + 1];
				Ary[j + 1] = A;

			}
		}
	}

🤦‍♀️틀린 이유🤦‍♂️

버블정렬을 사용했는데 반복하는 횟수를 많이 해주지 않아서 문제를 틀렸다. 해결하기 위해 반복 횟수만 증가시키니 해결!


😮 느낀 점

자료구조 시간에 많은 정렬에 대해서 배웠는데 막상 생각해보니 기억나는 부분이 많이 없는 것 같다..주말에는 정렬에 대해서 간단하게라도 정리를 해서 블로그에 올리며 정리를 해야겠다.


🧾 전체 코드

#define _CRT_SECURE_NO_WARNINGS 
#include<stdio.h>

int main()
{
	int N;

	int A;
	int B;

	scanf("%d", &N);

	int Ary[1000] = { 0, };

	for (int i = 0; i < N; i++)
	{
		scanf("%d", &Ary[i]);
	}

	for (int k = 0; k < 1000; k++)
	{
		for (int i = 0; i < N - 1; i++)
		{
			if (Ary[i] > Ary[i + 1])
			{
				A = Ary[i];
				Ary[i] = Ary[i + 1];
				Ary[i + 1] = A;

			}
		}
	}

	for (int b = 0; b < N; b++)
	{
		printf("%d\n", Ary[b]);
	}
}

0개의 댓글