https://www.acmicpc.net/problem/2908
이쯤 되니 문자열 관련 메소드를 정리하고 싶어졌다.
내가 궁금했던 것은 string 클래스에 reverse 기능을 하는 내장함수가 있을까? 였는데,,, 답은 없다.
그러면 c++에서 string을 reverse 하고 싶으면 어떻게 해야할까?
gpt씨한테 물어보니까 C++ 표준 라이브러리에 'std::reverse()' 함수가 있단다!
<algorithm> 헤더파일에 들어있단다!
reverse(뒤집을 문자열의 시작 위치, 뒤집을 문자열의 끝 위치);
이렇게 사용하면 된다!
틀렸던 부분 정리
| str.front() : 문자열의 맨 앞 '문자'를 반환 str.back() : 문자열의 맨 뒤 '문자'를 반환 |
str.begin() : 문자열의 시작을 가리키는 '반복자(iterator)'를 반환 str.end() : 문자열의 끝을 가리키는 '반복자(iterator)'를 반환 |
사용한 함수 정리
단계별로 문제 풀면서 문자열 관련해서 몰랐던 거 정리한 지난 포스팅 내용을 알차게 써먹었다.
1) str.begin(), str.end() : 문자열의 시작과 끝 위치 반환
2) stoi(str) : 문자열 -> 숫자
3) reverse(문자열 시작, 문자열 끝) : 문자열 뒤집기
<제출코드>
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main(){
// 두 수를 먼저 string으로 입력 받고
string A, B;
cin >> A >> B;
// algorithm 헤더파일에 들어있는 reverse 내장함수랑 string 헤더파일에 들어있는 str.begin(), str.end() 멤버 함수를 사용하여
// 두 수(문자열)를 뒤집어준다.
reverse(A.begin(), A.end());
reverse(B.begin(), B.end());
// 두 문자열을 숫자로 바꿔주고 (stoi : string to integer의 약자)(string 헤더파일에 들어있는 내장함수)
// 더 큰 값을 출력한다.
if(stoi(A) > stoi(B)){
cout << A;
} else{
cout << B;
}
}
<참고블로그>
[C++] string (문자열) 클래스 정리 및 사용법과 응용
[목차] 1. string 클래스란? 2. string 클래스의 입출력 3. string 클래스 생성 4. string 클래스 연산자 활용 5. string 클래스의 멤버 함수 6. string 클래스의 멤버 함수 사용 예시 1. string 클래스란? - C++ STL에
rebro.kr
'Algorithm > BOJ' 카테고리의 다른 글
| [백준/10988/c++] 팰린드롬인지 확인하기 (0) | 2024.02.17 |
|---|---|
| [백준/11718/c++] 그대로 출력하기 (0) | 2024.02.13 |
| [백준/10809/c++] 알파벳 찾기 (0) | 2024.02.13 |
| [백준/11720/c++] 숫자의 합 (0) | 2024.02.12 |
| [백준/5597/c++] 과제 안 내신 분..? (0) | 2024.02.10 |