favicon Jay Lee DevLog

728x90
300x250
#include <string>
#include <vector>
#include <cstring>
#include <string>

using namespace std;

vector<string> split(string str, string div)
{
    vector<string> vStr;
    int nStart = 0;
    int nEnd = str.find(div);
    while(nEnd != -1)
    {
        vStr.push_back(str.substr(nStart, nEnd - nStart));
        nStart = nEnd + 1;
        nEnd = str.find(div, nStart);
    }
    vStr.push_back(str.substr(nStart, nEnd - nStart));
    return vStr;
}

vector<string> solution(vector<string> quiz) {
    vector<string> answer, strResultList;
    for(auto i : quiz)
    {
        bool bPlus = false;
        int nA, nB, nResult;
        strResultList = split(i, " ");
        for(int j = 0; j < strResultList.size(); j++)          
        {
            switch(j)
            {
                case 0: 
                    nA = stoi(strResultList[j]);
                    break;
                    
                case 1:
                    bPlus = strResultList[j] == "+";
                    break;
                    
                case 2:
                    nB = stoi(strResultList[j]);
                    break;
                    
                case 4:
                    nResult = stoi(strResultList[j]);
                    break;  
            }
        }
        
        if (bPlus)
        {
            if (nA + nB == nResult)
                answer.push_back("O");    
            else
                answer.push_back("X");    
        }
        else
        {
            if (nA - nB == nResult)
                answer.push_back("O");    
            else
                answer.push_back("X");    
        }
    }
    return answer;
}

이번 문제의 핵심은 공백을 이용한 문자 나누기가 핵심인 것 같다.

나는 그냥  split 함수 만들어서 " "를 기준으로 문자를 나눠 vector에 저장하고,

for문 돌려서 값 계산으로 처리했다.

대부분 비슷한 방식으로 했겠지만,

보니깐 stringstream이라는게 있는 것 같았다.

(stringstream을 사용한 답 stringstream 공부 (tistory.com))

 

그래서 이 부분은 좀 공부를 해보려 한다.

공부할 부분은 따로 카테고리 만들어서 정리하는 게 좋을 것 같다.

728x90
반응형

+ Recent posts

/ /

Contact

📧 dlwjdwls60@naver.com


블로그에 내용이 있으면 해당 글을 보여주며, 없으면 내용이 복사된 채로 ChatGPT로 연결됩니다.