๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ“ ์•Œ๊ณ ๋ฆฌ์ฆ˜/Programmers

[C++/PGS] Lv.0 : ๋‹คํ•ญ์‹ ๋”ํ•˜๊ธฐ (๊ตฌํ˜„)

๋ฌธ์ œ ์„ค๋ช…

ํ•œ ๊ฐœ ์ด์ƒ์˜ ํ•ญ์˜ ํ•ฉ์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ์‹์„ ๋‹คํ•ญ์‹์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋‹คํ•ญ์‹์„ ๊ณ„์‚ฐํ•  ๋•Œ๋Š” ๋™๋ฅ˜ํ•ญ๋ผ๋ฆฌ ๊ณ„์‚ฐํ•ด ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ๋ง์…ˆ์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ๋‹คํ•ญ์‹ polynomial์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, ๋™๋ฅ˜ํ•ญ๋ผ๋ฆฌ ๋”ํ•œ ๊ฒฐ๊ด๊ฐ’์„ ๋ฌธ์ž์—ด๋กœ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด๋ณด์„ธ์š”. ๊ฐ™์€ ์‹์ด๋ผ๋ฉด ๊ฐ€์žฅ ์งง์€ ์ˆ˜์‹์„ return ํ•ฉ๋‹ˆ๋‹ค.


์ œํ•œ์‚ฌํ•ญ
  • 0 < polynomial์— ์žˆ๋Š” ์ˆ˜ < 100
  • polynomial์— ๋ณ€์ˆ˜๋Š” 'x'๋งŒ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.
  • polynomial์€ ์–‘์˜ ์ •์ˆ˜, ๊ณต๋ฐฑ, ‘x’, ‘+'๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ํ•ญ๊ณผ ์—ฐ์‚ฐ๊ธฐํ˜ธ ์‚ฌ์ด์—๋Š” ํ•ญ์ƒ ๊ณต๋ฐฑ์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.
  • ๊ณต๋ฐฑ์€ ์—ฐ์†๋˜์ง€ ์•Š์œผ๋ฉฐ ์‹œ์ž‘์ด๋‚˜ ๋์—๋Š” ๊ณต๋ฐฑ์ด ์—†์Šต๋‹ˆ๋‹ค.
  • ํ•˜๋‚˜์˜ ํ•ญ์—์„œ ๋ณ€์ˆ˜๊ฐ€ ์ˆซ์ž ์•ž์— ์˜ค๋Š” ๊ฒฝ์šฐ๋Š” ์—†์Šต๋‹ˆ๋‹ค.
  • " + 3xx + + x7 + "์™€ ๊ฐ™์€ ์ž˜๋ชป๋œ ์ž…๋ ฅ์€ ์ฃผ์–ด์ง€์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • 0์œผ๋กœ ์‹œ์ž‘ํ•˜๋Š” ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค.
  • ๋ฌธ์ž์™€ ์ˆซ์ž ์‚ฌ์ด์˜ ๊ณฑํ•˜๊ธฐ๋Š” ์ƒ๋žตํ•ฉ๋‹ˆ๋‹ค.
  • polynomial์—๋Š” ์ผ์ฐจ ํ•ญ๊ณผ ์ƒ์ˆ˜ํ•ญ๋งŒ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.
  • ๊ณ„์ˆ˜ 1์€ ์ƒ๋žตํ•ฉ๋‹ˆ๋‹ค.
  • ๊ฒฐ๊ด๊ฐ’์— ์ƒ์ˆ˜ํ•ญ์€ ๋งˆ์ง€๋ง‰์— ๋‘ก๋‹ˆ๋‹ค.
  • 0 < polynomial์˜ ๊ธธ์ด < 50

0๋ ˆ๋ฒจ ์น˜๊ณ ๋Š” ์ข€ ๊นŒ๋‹ค๋กœ์šด ๋ฌธ์ œ์˜€์Œ.

๋ฐ˜๋ก€๋ฅผ ์ž˜ ์ƒ๊ฐํ•ด๋ณด์•„์•ผ ํ•œ๋‹ค.

xํ•ญ์ด 0์ผ ๊ฒฝ์šฐ๋ž‘, ์ƒ์ˆ˜ํ•ญ์ด 0์ผ ๊ฒฝ์šฐ ๋“ฑ์„ ๋ชจ๋‘ ๊ณ ๋ คํ•ด์„œ ํ’€์–ด์•ผ ํ•จ!! 

 

๋‚˜์˜ ํ’€์ด

#include <string>
#include <vector>

using namespace std;

string solution(string polynomial) {
    string answer = "";
    string tmp = "";
    int xcnt=0;
    int numcnt=0;
    for(char i: polynomial){
        if(i==' ') continue;
        if(i=='+'){
            if(tmp=="") continue;
            else numcnt += stoi(tmp);
            tmp = "";
        }
        if(i=='x'){
            if(tmp=="") tmp="1";
            xcnt += stoi(tmp);
            tmp = "";
        }
        if(isdigit(i)){
            tmp += i;
        }
    }
    if(tmp!="") numcnt += stoi(tmp);
    
    if(xcnt==1) answer = "x";
    else if(xcnt==0) answer = "";
    else answer = to_string(xcnt) + "x";
    
    if(answer=="") answer = to_string(numcnt);
    else if(numcnt) answer += " + "+to_string(numcnt);
    
    return answer;
}