2021 카카오 인턴 코테 문제

5시간을 잡고 실전처럼 진행하였으며 코드의 최적화나 알고리즘은 정확하지 않음.


코딩테스트 연습 - 숫자 문자열과 영단어 | 프로그래머스 (programmers.co.kr)

 

코딩테스트 연습 - 숫자 문자열과 영단어

네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다. 다음은 숫자의 일부 자

programmers.co.kr


1번 문제이며, 약 20분 소요되었다.

크게 어려운 것은 없으며 map을 이용하여 풀었다. 파이썬의 dict이 더 편할지 모르겠다.

다만 string 처리가 귀찮았다.

#include <string>
#include <vector>
#include <map>

using namespace std;

int solution(string s) {
    int answer = 0;
    string num = "";
    string temp = "";
    map<string, string> m;
    m["zero"] = "0";
    m["one"] = "1";
    m["two"] = "2";
    m["three"] = "3";
    m["four"] = "4";
    m["five"] = "5";
    m["six"] = "6";
    m["seven"] = "7";
    m["eight"] = "8";
    m["nine"] = "9";

    for (int i = 0; i < s.size(); i++)
    {
        if (isdigit(s[i]))
            num += s[i];
        else
        {
            temp += s[i];
            if (m[temp]  != "")
            {
                num += m[temp];
                temp = "";
            }
        }
    }

    answer = stoi(num);

    return answer;
}

+ Recent posts