본문 바로가기

코딩 테스트/프로그래머스 코딩테스트

숫자 문자열과 영단어 풀이

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

#include <string>
#include <vector>
#include <iostream>
#include <math.h>

using namespace std;

#define MAX_NUM 10

int solution(string s) {

    int answer = 0;
    int length = s.size();

    string lookUpTable[MAX_NUM] = {"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"};
    string sCheck;
    vector<int> augmentNumber;

    for(int i=0; i<length; i++)
    {
        int checkChar = (int)s.at(i);

        // Alphabet
        if(checkChar >= 97 && checkChar <= 122)
        {
            // Augment the char
            sCheck.push_back(s.at(i));

            for(int j=0; j<MAX_NUM; j++)
            {
                // Check the string expressed number
                if(sCheck == lookUpTable[j])
                {
                    augmentNumber.push_back(j);
                    sCheck.clear();
                }
            }
        }
        // Number
        else
        {
            int number = (int)s.at(i) - 48;

            augmentNumber.push_back(number);
        }
    }

    int maxDigitNum = augmentNumber.size();
    int digitCnt = 0;
    int totalNum = 0;

    for(int i=maxDigitNum; i>0; i--)
    {
        totalNum += pow(10,i-1) * augmentNumber.at(digitCnt);
        digitCnt++;
    }

    answer = totalNum;

    return answer;
}

 

'코딩 테스트 > 프로그래머스 코딩테스트' 카테고리의 다른 글

올바른 괄호  (0) 2022.10.03
신규 아이디 추천 - 미해결...  (0) 2022.10.03
행렬의 곱셈  (0) 2022.09.29
성격 유형 검사하기  (0) 2022.09.25
최댓값과 최솟값  (0) 2022.09.25