자기개발👨‍💻/코딩 알고리즘

[c++] 백준 2908 상수

천숭이 2022. 1. 24. 16:02
#include <iostream>
#include <string>
#include <algorithm>
#include <string.h>

using namespace std;
string str_arr[1000];
int str_cnt = 0;

int main() {
    //string 변수 a 선언
    string a;

    //띄어쓰기를 포함한 전체 입력을 받는다.
    getline(cin, a);

    //받은 입력을 C의 형식으로 char buffer에 넣어주기 위한 변수선언. new는 malloc과 같은 동적할당 수행
    char* str_buff = new char[1000];

    //받은 입력 string a를 str_buff에 넣어준다.
    strcpy(str_buff, a.c_str());

    //strtok이 포인터를 반환하기때문에 tok을 포인터로 선언. 띄어쓰기를 기준으로 나눈다.
    char* tok = strtok(str_buff, " ");

    //tok을 살피며 끝이 아니라면 계속 진행한다.
    while (tok != nullptr) {

        //str_arr에 값을 추가한다.
        str_arr[str_cnt++] = string(tok);

        //띄어쓰기를 기준으로 나누어 다음 문자를 tok에 저장한다.
        tok = strtok(nullptr, " ");
    }

    reverse(str_arr[0].begin(), str_arr[0].end());
    reverse(str_arr[1].begin(), str_arr[1].end());

    int result;
    str_arr[0] > str_arr[1] ? result = stoi(str_arr[0]) : result = stoi(str_arr[1]);

    cout << result;

    return 0;
}

c++ 문법 연습~!~!