Problem Solving
[c++][프로그래머스] 숫자 문자열과 영단어
wadekang
2022. 3. 4. 16:33
프로그래머스 숫자 문자열과 영단어 [2021 카카오 채용연계형 인턴십]
https://programmers.co.kr/learn/courses/30/lessons/81301
코딩테스트 연습 - 숫자 문자열과 영단어
네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다. 다음은 숫자의 일부 자
programmers.co.kr
문제 풀이
- 이 문제는 map에 직접 zero ~ nine까지 선언한 후, 문자열을 한 자씩 더해가면서 map에 해당하는 단어가 있다면 숫자를 더해주는 방식으로 해결했습니다.
코드
#include <string>
#include <vector>
#include <map>
using namespace std;
map<string, int> m;
int solution(string s) {
string answer = "";
m["zero"] = 0;
m["one"] = 1;
m["two"] = 2;
m["three"] = 3;
m["four"] = 4;
m["five"] = 5;
m["six"] = 6;
m["seven"] = 7;
m["eight"] = 8;
m["nine"] = 9;
string tmp = "";
for(char c: s) {
if(isdigit(c)) answer += c;
else tmp += c;
if(m.find(tmp) != m.end()) {
answer += to_string(m[tmp]);
tmp = "";
}
}
return stoi(answer);
}
실행 결과