프로그래머스 코드 처리하기 문제 바로가기

이상하게 자꾸만 에러가 등장해서 풀이에 왜 걸렸던 문제… 해결법은 따옴표에 있었다. char의 경우 작은 따옴표'로 감싸주어야 하는데 (c == "1")와 같이 큰따옴표로 감싸는 바람에 자꾸만 에러가 발생했다. 아무리 고쳐도 문제 해결이 안되었는데 디버깅이 더 어려운거같다 ㅜㅜㅋㅋ 항상 따옴표에 유의하자!! (세미콜론은 물론이고)

구현하는 과정은 간단했다. index에 따라서 for문을 돌려서 code[idx]로 탐색해도 되지만, 코드의 간결성을 위해 for (char c: code){}로 해결했다.

내 풀이

#include <string>
#include <vector>

using namespace std;

string solution(string code) {
    string ret = "";
    int mode = 0;
    int idx = 0;
    
    for (char c: code){
        if (mode == 0){
            if (c == '1'){
                mode = 1;
            } else if (idx%2 == 0){
                ret += c;
            }
        } else{
            if (c == '1'){
                mode = 0;
            } else if (idx%2 == 1){
                ret += c;
            }
        }
        idx++;
        
    }
    
    if (ret == ""){
        return "EMPTY";
    } else{
        return ret;
    }
}