728x90
반응형
01.설계
02.풀이
- 간단히 replace를 이용해서 zero인 문자열을 0
- 각 영문에 맞게 replace를 해주면됨
03.소스코드
- 나의 풀이
-
#include <string> #include <vector> #include <iostream> #include <map> using namespace std; int numberRemove[] = { 4,3,3,5,4,4,3,5,5,4 }; string alphaNumber[] = { "zero","one","two","three","four","five","six","seven","eight","nine" }; string alphaNumberIdx[] = { "0","1","2","3","4","5","6","7","8","9" }; int zeroNumber[] = { 0,1,10,100,1000,10000,100000,1000000 }; map<string, int> numberA; map<int, int>a; int solution(string s) { int answer = 0; numberA["zero"] = 0; numberA["one"] = 1; numberA["two"] = 2; numberA["three"] = 3; numberA["four"] = 4; numberA["five"] = 5; numberA["six"] = 6; numberA["seven"] = 7; numberA["eight"] = 8; numberA["nine"] = 9; for (int i = 0; i <= 9; i++) { while (s.find(alphaNumber[i]) != s.npos) { s.replace(s.find(alphaNumber[i]), numberRemove[numberA[alphaNumber[i]]], alphaNumberIdx[i]); } } int len = s.size()-1; for (int ten = 1, i = len; i >= 0; i--, ten *= 10) { answer += (s[i]-'0') * ten; } return answer; } int main(void) { cout << solution("one4seveneight" ); return 0; }
- regex를 이용한 풀이
- regex : 정규식을 이용해서 더 쉽게 풀 수 있음
-
#include <string> #include <vector> using namespace std; int solution(string s) { s = regex_replace(s, regex("zero"), "0"); s = regex_replace(s, regex("one"), "1"); s = regex_replace(s, regex("two"), "2"); s = regex_replace(s, regex("three"), "3"); s = regex_replace(s, regex("four"), "4"); s = regex_replace(s, regex("five"), "5"); s = regex_replace(s, regex("six"), "6"); s = regex_replace(s, regex("seven"), "7"); s = regex_replace(s, regex("eight"), "8"); s = regex_replace(s, regex("nine"), "9"); return stoi(s); } int main(void) { cout << solution("one4seveneight"); return 0; }
728x90
반응형
'알고리즘 모음집 > New 알고리즘' 카테고리의 다른 글
2022-06-22-2019카카오-크레인인형뽑기게임 (0) | 2022.06.23 |
---|---|
2022-06-21-프로그래머스-카카오인턴십-키패드누르기 (0) | 2022.06.23 |
2022-06-14-카카오_신규아이디추천 (0) | 2022.06.23 |
2022-06-13-로또의-최고순위와-최저순위-리팩토링 (0) | 2022.06.13 |
2022-05-11-카카오-신고-결과-받기 (0) | 2022.05.11 |
댓글