[프로그래머스 C++]/LEVEL 0

[프로그래머스 C++] 다항식 더하기

AKI(JUNI) 2024. 3. 4. 23:18

◈ 문제 설명


◈ 문제 설명 링크
코딩테스트 연습 - 다항식 더하기 | 프로그래머스 스쿨 (programmers.co.kr)

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr


◈ 작성 코드

 

#include <string>
#include <vector>
#include <algorithm>

using namespace std;

string solution(string polynomial) 
{
    string answer = "";
    string w = "";
    int a = 0;
    int b = 0;

    for(int i = 0 ; i < polynomial.size(); i++)
    {
        if(polynomial[i] == ' ')
        {
            if(w != "")
            {
                int t = stoi(w);
                b += t;
                w = "";
            }
        }
        else if(polynomial[i] == 'x')
        {
            if(w != "")
            {
                int t = stoi(w);
                a += t;
            }
            else
            {
                a += 1;
            }
            w = "";
        }
        else if(polynomial[i] == '+')
        {
            
        }
        else
        {
            w += polynomial[i];
        }
    }
    
    if(w != "")
    {
        int t = stoi(w);
        b += t;
        w = "";
    }
    
    string ace = to_string(a);
    string beta = to_string(b);
    if(ace != "0")
    {
        if(ace == "1")
        {
            ace = "x";
        }
        else
        {
            ace += "x";
        }
    }
    
    if(beta == "0")
    {
        answer = ace;
    }
    else
    {
        if(ace != "0")
        {
            answer = ace + " + " + beta;
        }
        else
        {
            answer = beta;
        }
    }
    return answer;
}