본문 바로가기

algorithm/백준알고리즘

[백준알고리즘] 2908번: 상수 -C++

728x90

[백준알고리즘] 2908번: 상수 -C++

2908번: 상수 (acmicpc.net)

 

2908번: 상수

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

www.acmicpc.net

풀이 방법이야 여러 가지 있는 것 같다.

 

모든 숫자는 0이 없이 세 자리 숫자라는 조건 덕분에 각 자리의 숫자를 모두 찾아서 뒤집힌 숫자를 일일이 구할 수도 있다.

 

나는 여기서 string으로 입력받고 reverse하기로 결정했다.

reverse()의 경우 <algorithm> 헤더에 존재하며 뒤집을 주소의 iterator type의 first와 last를 인자로 받는다.

따라서 begin()end()를 사용해 string 객체의 시작과 끝을 지정해주었다.

 

이후 <string> 헤더의 stoi()를 이용해 string 객체를 int 객체로 만들어주었다.

stoi()를 비롯해 stod(), stof()등 다양한 함수들은 C++11 이후 포함되었다.

 

#include <iostream>
#include <string>
#include <algorithm>

int main(void)
{
	std::string num1, num2;
	std::cin >> num1 >> num2;
	std::reverse(num1.begin(), num1.end());
	std::reverse(num2.begin(), num2.end());
	int first = std::stoi(num1);
	int second = std::stoi(num2);
	std::cout << (first > second ? first : second);
}

 

잘못된 점이나 부족한 점 지적해주시면 감사하겠습니다

728x90