[프로그래머스 / C++] 컨트롤 제트

YH·2023년 7월 13일
1

문제

컨트롤 제트 : 문제 링크


문제 분석

  • 숫자와 "Z"가 공백으로 구분되어 담긴 문자열 s가 주어진다. 문자열에 있는 숫자를 차례대로 더하고, "Z"가 나오면 바로 전에 더했던 숫자를 뺀 값을 return
  • 문자열 format을 파싱할 때 사용하는 stringstream 클래스를 사용하기 위해 sstream을 헤더에 포함
  • stringstream 변수 ss에 문자열 s를 넣어 초기화하고, 공백을 기준으로 분리된 문자열을 temp에 저장 및 문자열 벡터 s_list에 추가
  • "Z" 이전에 나온 값은 빼고, 이외의 값은 더하여 answer에 저장. 이때, stoi 함수를 통해 string 형태를 int로 변환하여 연산

유사문제
문자열 계산하기 : 문제 링크
OX퀴즈 : 문제 링크
다항식 더하기 : 문제 링크


풀이

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

using namespace std;

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

0개의 댓글