Study Record

[프로그래머스] Level1 - 숫자 문자열과 영단어 본문

알고리즘

[프로그래머스] Level1 - 숫자 문자열과 영단어

초코초코초코 2021. 11. 30. 16:44
728x90
#include <string>
#include <vector>

using namespace std;

string getString(string str, int start, int count){
    string return_str = "";
    for(int i=0; i<count; i++) return_str += str[i + start];
    return return_str;
}
int solution(string s) {
    int answer = 0;
    string numText[] = { "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine" };
    string numStr = "";

    for (int i = 0; i < s.length(); i++) {
        if (s[i] >= '0' && s[i] <= '9') {
            numStr += s[i];
            continue;
        }
        else {
            for (int k = 0; k <= 9; k++) {
                int numTextLen = numText[k].length();
                if (getString(s, i, numTextLen) == numText[k]) {
                    int num = '0' + k;
                    numStr += num;
                    i = i + numTextLen - 1;
                    break;
                }
            }
        }
    }
    int dec = 1;
    for (int i = 1; i <= numStr.length(); i++) {
        int index = numStr.length() - i;
        int number = numStr[index] - '0';
        answer += dec * number;
        dec *= 10;
    }
    return answer;
}
728x90