[백준] 수 정렬하기

2024. 9. 26. 13:49코딩테스트

수 정렬하기

 
시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 128 MB 219221 125843 86363 58.200%

문제

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

입력

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

출력

첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다.

 


오름차순으로 정렬하는 방법이 여러가지가 있는데 버블 정렬을 통해 오름차순 정렬을 하였다.

#include <iostream>
#include <vector>

using namespace std;

int main()
{
	ios::sync_with_stdio(false);
	cin.tie(NULL);
	cout.tie(NULL);

	int size = 0;

	cin >> size;

	vector<int> myVector(size, 0);

	for (int i = 0; i < size; i++)
	{
		cin >> myVector[i];
	}

	for (int i = 0; i < size - 1; i++)
	{
		for (int j = 0; j < size - 1 - i; j++)
		{
			if (myVector[j] > myVector[j + 1])
			{
				int temp = myVector[j + 1];
				myVector[j + 1] = myVector[j];
				myVector[j] = temp;
			}
		}
	}

	for (int i = 0; i < size; i++)
	{
		cout << myVector[i] << '\n';
	}
}
for (int i = 0; i < size - 1; i++)
{
	for (int j = 0; j < size - 1 - i; j++)
	{
		if (myVector[j] > myVector[j + 1])
		{
			int temp = myVector[j + 1];
			myVector[j + 1] = myVector[j];
			myVector[j] = temp;
		}
	}
}

첫번재 for문은 루프 횟수이고, 2번쨰는 해당 루프에서 비교하는 횟수이다. temp를 통해 swap에 없어질 데이터를 미리 저장해 바꾼후 저장한다.

https://www.acmicpc.net/problem/2750

'코딩테스트' 카테고리의 다른 글

[백준] 소트인사이드 c++  (1) 2024.09.30
[백준] 버블 소트 c++  (0) 2024.09.30
[백준] 절대값 힙 c++  (1) 2024.09.26
[백준] 카드2 c++  (0) 2024.09.24
[백준] 오큰수 c++  (0) 2024.09.24