프로그래머스 숫자 문자열과 영단어 [2021 카카오 채용연계형 인턴십]
https://programmers.co.kr/learn/courses/30/lessons/81301
문제 풀이
- 이 문제는 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);
}
실행 결과
'Problem Solving' 카테고리의 다른 글
[c++][프로그래머스] 표 편집 (0) | 2022.03.07 |
---|---|
[c++][프로그래머스] 거리두기 확인하기 (0) | 2022.03.05 |
[c++][프로그래머스] 블록 이동하기 (0) | 2022.03.03 |
[c++][프로그래머스] 외벽 점검 (0) | 2022.02.28 |
[c++][프로그래머스] 기둥과 보 설치 (0) | 2022.02.25 |
댓글