알고리즘/카카오 기출

[프로그래머스/C++] 숫자 문자열과 영단어 - 2021 카카오 채용연계형 인턴십

수디sudy 2022. 2. 17. 19:12

문제 : https://programmers.co.kr/learn/courses/30/lessons/81301

 

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

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

programmers.co.kr

 

 

이 문제도 레벨 1!

0~9 까지의 영단어를 가진 string vector를 만들어서 주어진 문자열과 비교했습니다.

다만 처음부터 return 할 answer를 int형으로 한다면 숫자를 하나하나 더하기 힘들어서

string으로 만들어서 문자열을 그냥 더해준다음 마지막에 int로 바꿨습니당.

이것도 그냥 노가다 str 문제 :3

 

#include <string>
#include <vector>
#include <iostream>

using namespace std;

int solution(string s) {
    string answer = "";
    
    vector<string> number;
    number.push_back("zero");
    number.push_back("one");
    number.push_back("two");
    number.push_back("three");
    number.push_back("four");
    number.push_back("five");
    number.push_back("six");
    number.push_back("seven");
    number.push_back("eight");
    number.push_back("nine");
    
    for(int i=0; i<s.size(); i++)
    {
        //숫자
        if(isdigit(s[i]))
        {
            answer += s[i];
        }
        
        //문자
        for(int j=0; j<number.size(); j++)
        {
            if(s[i] == number[j][0] && s[i+1] == number[j][1])
            {
                answer += to_string(j);
            }
        }
    }
    
    int ans = stoi(answer);
    
    return ans;
}