본문 바로가기

CS/알고리즘

[c++][프로그래머스] 푸드파이터 [성공]

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

using namespace std;

string solution(vector<int> food) {
    string answer = "";
    string tmpF, tmpS;
    
    for (int idx=1; idx<food.size(); idx++) //0번 인덱스인 물은 제외
    {
        string oneFood="";
        
        if ((food[idx]%2)!=0)
        {
            food[idx]-=1; //홀수면 하나뺌
        }
       // oneFood=(to_string((idx))*(to_string(food[idx]/2));
        
        int num= food[idx]/2;
        
        for (int j=0; j<num; j++)
        {
            oneFood+=to_string(idx);
        }
        tmpF+=oneFood;
    }
    
    tmpS=tmpF;
    reverse(tmpS.begin(), tmpS.end());
        
    answer=tmpF+"0"+tmpS;
    
    return answer;
}

배운 점

oneFood는 temp변수여서 for문이 돌아갈때마다 초기화해줘야 하는데

앞에 선언만 해놓고 초기화를 안해서

결과값 앞에 틀린 문자열들이 계속 붙어나왔다

 

초기화해줘야 할 임시변수는 꼭 체크하기