알고리즘/프로그래머스

프로그래머스 숫자 문자열과 영단어

이영재의오른발 2022. 5. 14. 13:56
반응형
#include <string>
#include <vector>
#include <iostream>
using namespace std;

int solution(string s) {
    string answer="";
    
    for(int i=0; i<s.length(); i++) {
        if(s[i] >= '0' && s[i] <= '9') {
            answer = answer + s[i];
        }
        else {
            if(s[i] == 'z') {
                i = i + 3;
                answer = answer + '0';
            }
            else if(s[i] == 'o') {
                i = i + 2;
                answer = answer + '1';
            }
            else if(s[i] == 't') {
                if(s[i+1] == 'w') {
                    i = i + 2;
                    answer = answer + '2';
                }
                else if(s[i+1] == 'h') {
                    i = i + 4;
                    answer = answer + '3';
                }
            }
            else if(s[i] == 'f') {
                if(s[i+1] == 'o') {
                    i = i + 3;
                    answer = answer + '4';
                }
                else if(s[i+1] == 'i') {
                    i = i + 3;
                    answer = answer + '5';
                }
            }
            else if(s[i] == 's') {
                if(s[i+1] == 'i') {
                    i = i + 2;
                    answer = answer + '6';
                }
                else if(s[i+1] == 'e') {
                    i = i + 4;
                    answer = answer + '7';
                }
            }
            else if(s[i] == 'e') {
                i = i + 4;
                answer = answer + '8';
            }
            else if(s[i] == 'n') {
                i = i + 3;
                answer = answer + '9';
            }
        }
    }
    
    
    return stoi(answer);
}

 

영단어 알파벳의 첫번째 글자에 따라 경우의수를 판단해주기만 하면 쉽게 풀수있는 문제였다

 

같은 영단어일때는 알파벳 다음 글자가 다르다는 점만 신경써주고 answer 문자열에 저장한뒤 stoi 함수를 써주면 답이 return된다

728x90
반응형