1. 문제 상세
https://www.acmicpc.net/problem/2908
2. 문제 접근
정수 두 개를 문자열로 입력받아 문자열을 뒤집고, 문자열을 정수로 바꾼 후 값을 비교한다.
문자열을 뒤집기 위해 algorithm 라이브러리에 포함된 reverse() 함수를 사용하자
reverse 함수사용법은
reverse(시작 반복자, 종료 반복자) 이다. (반복자 = 인덱스)
문자열을 모두 뒤집을 때 시작 인덱스와 종료 인덱스를 구하기 위해 문자열의 멤버함수 begin() 과 end() 를 사용한다.
begin() 함수는 문자열의 첫 번째 인덱스를 반환.
end() 함수는 문자열의 마지막 인덱스를 반환한다.
위와 같은 함수들로 문자열을 뒤집은 후 문자열을 정수로 바꾼다.
이를 위해 stoi() 함수를 사용한다.
stoi(문자열객체) 형식으로 문자열의 값을 정수로 변환하여 반환한다.
반환받은 정수들을 변수에 저장하여 비교 후, 큰 값을 출력하자.
3. 문제 풀이
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
string s1, s2;
int a, b;
cin >> s1 >> s2;
reverse(s1.begin(), s1.end());
reverse(s2.begin(), s2.end());
a = stoi(s1);
b = stoi(s2);
if(a >= b) cout << a;
else cout << b;
}
헤더에 algorithm 추가.
문자열 객체 s1, s2 를 생성. 정수형 변수 a, b 를 선언한다.
cin 으로 정수를 문자열로 입력받아 s1, s2 에 저장한다.
reverse() 함수에 문자열의 begin(), end() 함수를 사용하여 s1, s2 문자열 전체를 뒤집는다.
a 와 b 에 각각 s1, s2 문자열을 stoi() 함수로 정수로 변환하여 저장한다.
조건문으로 a 가 b 보다 크거나 같다면 a 를, 아닌 경우 b 를 출력한다.
4. 성능 확인
5. 마무리
algorithm 라이브러리의 reverse 함수를 사용해 보았다.
reverse 함수는 문자열의 인덱스 값을 받아서 해당 인덱스 범위의 문자열을 뒤집어준다.
문자열을 모두 뒤집을 때는 문자열의 begin, end 멤버함수로 앞, 마지막 인덱스를 구해 reverse 함수에 사용하자.
문자열 -> 정수로 변환 할 때에는 stoi() 함수를 사용하여 정수 값으로 반환받는다.
'백준 - 단계별로 풀어보기 > 문자열' 카테고리의 다른 글
[백준] 11718번 : 그대로 출력하기 | C++ (0) | 2023.09.26 |
---|---|
[백준] 5622번 : 다이얼 | C++ (0) | 2023.09.25 |
[백준] 1152번 : 단어의 개수 | C++ (0) | 2023.09.25 |
[백준] 2675번 : 문자열 반복 | C++ (0) | 2023.09.25 |
[백준] 10809번 : 알파벳 찾기 | C++ (0) | 2023.09.25 |