반응형
https://programmers.co.kr/learn/courses/30/lessons/81301?language=cpp
간단한 문자열 문제였습니다.
풀이방법
1. map에 각 대응 문자와 숫자를 저장합니다.
2. 단어를 읽으며 적절히 매칭되었다면 정답에 문자를 추가해줍니다.
3. 문자를 수로 바꿔 반환합니다.
Code
#include <bits/stdc++.h>
using namespace std;
int solution(string s) {
map<string,int> m;
m["zero"] = -1;
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 answer = "";
string tmp = "";
for(int i = 0; i < s.size(); i++){
tmp += s[i];
if('0' <= s[i] && s[i] <= '9'){
answer+= s[i];
tmp = "";
}
else if(m[tmp]){
if(tmp == "zero") answer += '0';
else answer += to_string(m[tmp]);
tmp = "";
}
}
return stoi(answer);
}
'Algorithm > String' 카테고리의 다른 글
(Python) - 백준(BOJ) 1340번 : 연도 진행바 (0) | 2021.07.27 |
---|---|
(C++) - 백준(BOJ) 21734번 : SMUPC의 등장 (0) | 2021.07.25 |
(C++) - 백준(BOJ) 1969번 : DNA (0) | 2021.06.01 |
(C++) - 백준(BOJ) 12904번 : A와 B (0) | 2021.05.27 |
(Javascript) - 프로그래머스(2019 카카오 개발자 겨울 인턴십) : 튜플 (0) | 2021.05.07 |