코딩테스트

프로그래머스 / 컨트롤 제트

murlocdev 2026. 5. 13. 03:55

https://school.programmers.co.kr/learn/courses/30/lessons/120853

 

stoi를 사용했다

처음엔 마지막 수를 저장하지 않는 버그가 있었는데

마지막 수는 이후에 ' '를 입력하지 않아서 answer += temp를 하지 않았기 때문에 일어난 현상이었다.

for문이 끝난 후에 string이 남아있으면 answer에 더해주는것으로 해결했다

더보기
#include <string>
#include <vector>

using namespace std;

int solution(string s) {
    int answer = 0;

    string num = "";
    int temp = 0;

    for (int i = 0; i < s.size(); i++)
    {
        // 'Z'의 경우
        if (s[i] == 'Z')
        {
            answer -= temp;
            num = "";
        }

        // ' '의 경우
        else if (s[i] == ' ')
        {
            if (num != "")
            {
                temp = stoi(num);
                answer += temp;
                num = "";
            }
        }

        // 그 외의 경우(숫자)
        else
        {
            num += s[i];
        }
    }

    // 마지막 수 더하기
    if (num != "")
    {
        temp = stoi(num);
        answer += temp;
        num = "";
    }
    return answer;
}