문제풀이(Problem Solving)

프로그래머스, 숫자 문자열과 영단어 : C++ [CPP]

게임이 더 좋아 2021. 11. 5. 12:11
반응형
728x170

어렵지는 않지만 그렇다고 단순하지도 않다.

다만 정규 표현식을 아느냐.. 모르느냐에 따라 풀이 시간이 달라진다.

 

그냥 문자열이 주어졌을 경우는.. 거의 정규표현식이 좋다고 생각하면 된다.

 

https://programmers.co.kr/learn/courses/30/lessons/81301


 

#맞는 풀이

#include <string>
#include <vector>
#include <regex>



using namespace std;


int solution(string s) {
    
    // 원하는 패턴의 문자열을 다른 문자열으로 치환
    //regex_replace (대상, 정규표현식 객체, 치환 결과)
    s = regex_replace(s, regex("zero"), "0"); // "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); // stoi, string to int string 헤더에 있음

}

 

 

쉬운 문제다. 

다만 짧게 빠르게 풀려면 정규표현식에 대한 이해가 필요하다.

 

 

 

728x90
반응형
그리드형