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

김영한·2021년 8월 20일
0

알고리즘

목록 보기
60/74

문제 링크 : 숫자 문자열과 영단어

[문제 접근]

간단하게 구현만하면 풀리는 문제였던 것 같다.

  1. 숫자가 나오면 숫자로 변환하여 answer를 업데이트시켜준다.
  2. 문자가 나오면 temp라는 문자열 변수에 추가한다.
  3. temp 문자열이 check함수에서 조건에 맞는 숫자이면 answer를 업데이트시켜주고 temp를 초기화해준다.

[소스 코드]

#include <string>
#include <vector>

using namespace std;

int check(string s) {
    if(s=="zero") {
        return 0;
    } else if(s=="one") {
        return 1;
    } else if(s=="two") {
        return 2;
    } else if(s=="three") {
        return 3;
    } else if(s=="four") {
        return 4;
    } else if(s=="five") {
        return 5;
    } else if(s=="six") {
        return 6;
    } else if(s=="seven") {
        return 7;
    } else if(s=="eight") {
        return 8;
    } else if(s=="nine") {
        return 9;
    } else {
        return 10;
    }
}

int solution(string s) {
    int answer = 0;
    string temp = "";
    for(int i=0 ; i<s.size() ; i++) {
        if(s[i]>='0' && s[i]<='9') {
            answer *= 10;
            answer += (s[i]-'0');
        } else {
            temp += s[i];
            int result = check(temp);
            if(result!=10) {
                answer *= 10;
                answer += result;
                temp = "";
            }
        }
    }
    
    return answer;
}

0개의 댓글