[프로그래머스/C++]Lv.0 - 영어가 싫어요

YH J·2023년 4월 17일
0

프로그래머스

목록 보기
19/168

문제 링크

https://school.programmers.co.kr/learn/courses/30/lessons/120894

내 풀이

문자열을 첫번째 원소부터 한글자씩 a에 추가하면서 비교하여 숫자가 맞으면 b에 해당 숫자를 넣어준다.

내 코드

#include <string>
#include <vector>

using namespace std;

long long solution(string numbers) {
    long long answer = 0;
    
    string a;
    string b;
    for(int i = 0; i < numbers.length(); i++)
    {
        a += numbers[i];
        if(a == "zero")
        {
            b += "0";
            a = "";
        }
        else if(a == "one")
        {
            b += "1";
            a = "";
        }
        else if(a == "two")
        {
            b += "2";
            a = "";
        }
        else if(a == "three")
        {
            b += "3";
            a = "";
        }
        else if(a == "four")
        {
            b += "4";
            a = "";
        }
        else if(a == "five")
        {
            b += "5";
            a = "";
        }
        else if(a == "six")
        {
            b += "6";
            a = "";
        }
        else if(a == "seven")
        {
            b += "7";
            a = "";
        }
        else if(a == "eight")
        {
            b += "8";
            a = "";
        }
        else if(a == "nine")
        {
            b += "9";
            a = "";
        }
    }
    answer = stoll(b);
    return answer;
}

다른 사람의 풀이

#include <string>
#include <vector>

using namespace std;

long long solution(string numbers) {
    long long answer = 0;
    vector<string> num = {
        "zero", "one", "two", "three", "four", "five",
        "six", "seven", "eight", "nine"
    };
    int tmp;

    for (int i=0; i<num.size(); i++)
    {
        while ((tmp = numbers.find(num[i])) != string::npos)
        {
            numbers.replace(tmp, num[i].size(), to_string(i));
        }
    }
    answer = stoll(numbers);
    return answer;
}

다른 사람의 풀이 해석

vector에 미리 인덱스에 맞춰서 숫자에 맞는 문자열을 세팅해놓고 num의 원소로 find해서 해당 위치에 인덱스를 replace 해줌 완성된 숫자문자열을 stoll해서 리턴함

profile
게임 개발자 지망생

0개의 댓글