CodingTest Practice/Programmers

프로그래머스 : 숫자 문자열과 영단어 (C++, Lv.1)

몽땅마니아(MDD) 2021. 12. 30. 22:38

https://programmers.co.kr/learn/courses/30/lessons/81301?language=cpp 

 

코딩테스트 연습 - 숫자 문자열과 영단어

네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다. 다음은 숫자의 일부 자

programmers.co.kr

 

하다가 문자열을 어떻게 처리해야 할지 도저히 못 풀겠어서 그냥 블로그에서 파이썬 코드 봤는데 너무 짧게 쉽게 구현되길래 현타가 왔다.... 파이썬이 진짜 대박이긴 한 것 같다 

그리고 C++ 다른 사람 코드도 봤는데 파이썬 만큼이나 간단하게 구현할 사람이 있어 그 코드를 참고했다.

regex_repalce 함수를 통해 문자열을 바꿀 수 있었다. 미쳤다... 알아야 할 게 너무 많다 ㄹㅇ 

 

regex_replace 에 대한 참고 블로그 글 ( replace 와 regex_replace 모두 깔끔하게 정리 잘 해놓으셨다👍👍 )

https://ponyozzang.tistory.com/678

#include <string>
#include <vector>
#include <regex>
//타인의 코드풀이를 보고 적용해 다시 작성한 코드

using namespace std;
string num_text[] = {"zero", "one", "two", "three", "four", "five", 
                     "six", "seven", "eight", "nine"};
int solution(string s) {
    int answer = -1;
    
    for(int i= 0; i<10; i++) {
        s = regex_replace(s, regex(num_text[i]), to_string(i));
    }
    
    answer = stoi(s);
    return answer;
}