[프로그래머스 / C++] OX퀴즈

YH·2023년 7월 18일
0

문제

OX퀴즈 : 문제 링크


문제 분석

  • 덧셈, 뺄셈 수식들이 'X [연산자] Y = Z' 형태로 들어있는 문자열 배열 quiz가 매개변수로 주어진다. 수식이 옳다면 "O"를 틀리다면 "X"를 순서대로 담은 배열을 return
  • 문자열 format을 파싱할 때 사용하는 stringstream 클래스를 사용하기 위해 sstream을 헤더에 포함
  • for문을 통해 quiz 배열에 들어있는 각 수식을 순서대로 stringstream 변수 ss에 넣어 초기화하고, 공백을 기준으로 분리된 문자열을 temp에 저장 및 문자열 벡터 s_list에 추가
  • index 1 위치의 연산자가 + 및 -이고, 각 정수를 stoi 변환 후 수식이 옳다면 "O", 틀리다면 "X"를 answer에 저장

유사문제
컨트롤 제트 : 문제 링크
문자열 계산하기 : 문제 링크
다항식 더하기 : 문제 링크


풀이

#include <string>
#include <vector>
#include <sstream>

using namespace std;

vector<string> solution(vector<string> quiz) {
    vector<string> answer;
    
    for(int i = 0; i < quiz.size(); i++) {
        stringstream ss(quiz[i]);
        string temp = "";
        vector<string> s_list;
        
        while(ss >> temp) s_list.push_back(temp);
        if(s_list[1] == "+") {
            if(stoi(s_list[0]) + stoi(s_list[2]) == stoi(s_list[4])) answer.push_back("O");
            else answer.push_back("X");
        }
        else if(s_list[1] == "-") {
            if(stoi(s_list[0]) - stoi(s_list[2]) == stoi(s_list[4])) answer.push_back("O");
            else answer.push_back("X");
        }
    }
    return answer;
}
profile
Keep Recycling Your Dreams

1개의 댓글

comment-user-thumbnail
2023년 7월 18일

좋은 글 잘 읽었습니다, 감사합니다.

답글 달기