728x90
    
    
  
내 풀이
주요 포인트 )
- string에 char를 붙인다.
- int에 숫자를 하나씩 붙이려면 10을 곱해서 붙이면 된다.
- answer에 숫자를 붙이고 나면 tmp는 비운다. 이를 위해 문자가 완성되지 않았을 때는 else continue 를 주었다.
- char를 숫자로 바꾸려면 '0'을 빼주면 된다.
#include <string>
#include <vector>
using namespace std;
int solution(string s) {
    int answer = 0;
    string tmp;
    for (int i = 0; i < s.size(); i++) {
        if (s[i] >= 'a' && s[i] <= 'z') {
            tmp += s[i];
            if (tmp == "zero") answer *= 10;
            else if (tmp == "one") answer = answer * 10 + 1;
            else if (tmp == "two") answer = answer * 10 + 2;
            else if (tmp == "three") answer = answer * 10 + 3;
            else if (tmp == "four") answer = answer * 10 + 4;
            else if (tmp == "five") answer = answer * 10 + 5;
            else if (tmp == "six") answer = answer * 10 + 6;
            else if (tmp == "seven") answer = answer * 10 + 7;
            else if (tmp == "eight") answer = answer * 10 + 8;
            else if (tmp == "nine") answer = answer * 10 + 9;
            else continue;
            tmp = "";
        }
        else answer = answer * 10 + (s[i] - '0');
    }
    return answer;
}

'[C_C++]코딩테스트 연습 > [프로그래머스] level 1' 카테고리의 다른 글
| [C++] 프로그래머스 - 3진법 뒤집기 (0) | 2021.07.18 | 
|---|---|
| [C++] 프로그래머스 - 실패율 (pair, sort - bool) (0) | 2021.07.18 | 
| [C++] 프로그래머스 - 약수의 개수와 덧셈 (0) | 2021.07.14 | 
| [C++] 프로그래머스 - 로또의 최고 순위와 최저 순위 (0) | 2021.07.13 | 
| [C++] 프로그래머스 - 예산 (0) | 2021.07.13 | 
![[C++] 프로그래머스 - 숫자 문자열과 영단어](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FFu5LH%2Fbtq9MFzP5Px%2FAAAAAAAAAAAAAAAAAAAAALNjJbRgZdGYBmJIDkH462T414tasBYUoOLlWHp0piX1%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1761922799%26allow_ip%3D%26allow_referer%3D%26signature%3DCcAtw9KLZi4YiNuiOTJuTu8eBjo%253D)