본문 바로가기

Algorithm/BOJ

[백준/2908/c++] 상수

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;
  }
}

 

 

 

<참고블로그>

https://rebro.kr/53

 

[C++] string (문자열) 클래스 정리 및 사용법과 응용

[목차] 1. string 클래스란? 2. string 클래스의 입출력 3. string 클래스 생성 4. string 클래스 연산자 활용 5. string 클래스의 멤버 함수 6. string 클래스의 멤버 함수 사용 예시 1. string 클래스란? - C++ STL에

rebro.kr