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 |