본문 바로가기
프로그래밍 ( Programming )/백준 알고리즘 (BaekJoon Algorithm)

2908번 - 상수 ( 백준 알고리즘/C++ )

by Jayce_choi 2020. 12. 17.
반응형
 

2908번: 상수

상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하는 문제를 내주었다. 상근이는 세 자리 수 두

www.acmicpc.net

문제 : 두 수가 주어졌을 때, 상수의 대답을 출력하는 프로그램을 작성하시오.

상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하는 문제를 내주었다. 상근이는 세 자릿수 두 개를 칠판에 써주었다. 그다음에 크기가 큰 수를 말해보라고 했다.

상수는 수를 다른 사람과 다르게 거꾸로 읽는다. 예를 들어, 734와 893을 칠판에 적었다면, 상수는 이 수를 437과 398로 읽는다. 따라서, 상수는 두 수중 큰 수인 437을 큰 수라고 말할 것이다.

입력 : 첫째 줄에 상근이가 칠판에 적은 두 수 A와 B가 주어진다.

두 수는 같지 않은 세 자리 수이며, 0이 포함되어 있지 않다.

출력 : 첫째 줄에 상수의 대답을 출력한다.

 


#include<iostream>
#include<string>
using namespace std;
int main()
{
	string arr;
	getline(cin, arr);
	char Temp;

	Temp = arr[2];
	arr[2] = arr[0];
	arr[0] = Temp;

	Temp = arr[6];
	arr[6] = arr[4];
	arr[4] = Temp;

	int A = 100 * (arr[0] - 48) + 10 * (arr[1] - 48) + (arr[2] - 48);
	int B = 100 * (arr[4] - 48) + 10 * (arr[5] - 48) + (arr[6] - 48);
	if (A > B)
		cout << A;
	else
		cout << B;

	return 0;
}​
중요 포인트

- 입력받은 두 수의 앞과 끝자리의 바꾸기에 의한 새로운 수 비교 알고리즘 필요  

해설

처음에 문자열을 받는 함수를 이용하여 수를 받았다. ( scanf를 이용하여 2개의 수를 받아도 무방하다 )
그 후 입력받은 수의 자리를 임의로 바꾸는 코드를 구성하여 성공하게 하였다. 

반응형

댓글