IT 프로그래밍/C++

[c++]세 정수 a, b, c를 받은 후 오름차순으로 출력하는 프로그램

기술1 2024. 3. 9. 09:19

 

#include <iostream>

using namespace std;

int main()
{
	int a, b, c, temp;
	cin >> a >> b >> c;

	if (a >= b)
	{
		temp = b;
		b = a;
		a = temp;
	}
	if (b >= c)
	{
		temp = c;
		c = b;
		b = temp;
	}
	if (a >= b)
	{
		temp = b;
		b = a;
		a = temp;
	}

	cout << a << b << c << endl;
	return 0;
}

이 문제를 처음 본 순간 든 생각은 temp라는 변수를 지정해줘서 하는 알고리즘을 생각해냈습니다. 예전 강의에서 들은 적이 있던 내용이라 처음에 접근하기는 쉬웠습니다. 

 

하지만 어떻게 오름차순을 해야하는지 막막해서 결국 구글링을 통해 다른 블로그를 참고했는데요.이런식으로 했습니다. temp라는 변수를 지정해준 다음 만약 a>=b이면 순서를 바꿔주고 b>=c이면 순서를 바꾸어주었습니다.

 

다시 a>=b의 순서를 바꾸어주는 이유는 만약 2번째까지 진행되었다면 a와  b가 이미 순서가 바뀌어져있기 때문입니다. 그 상태에서 a>=b를 다시한번 분석해서 미처 바뀌지 못한 처음 입력한 a와 c의 값을 비교해주는 것입니다. 

 

이 과정을 다 마친다면 정상적으로 출력이 되는 것을 볼 수 있습니다.

 

Chat gpt 결과 

--추후입력--