"프로그래머스 120894 영어가 싫어요"의 두 판 사이의 차이

 
1번째 줄: 1번째 줄:
==개요==
==개요==
{{프로그래머스|레벨=0|페이지=8|분류: 코딩테스트 입문}}
{{프로그래머스|레벨=0|페이지=8|분류=코딩테스트 입문}}
[[분류: 프로그래머스 입문 캘린더]]
[[분류: 프로그래머스 입문 캘린더]]
* [[프로그래머스 입문 캘린더]]
* [[프로그래머스 입문 캘린더]]

2023년 11월 27일 (월) 19:39 기준 최신판

1 개요[ | ]

프로그래머스 120894 영어가 싫어요

2 C++[ | ]

#include <string>
#include <vector>
#include <regex>
using namespace std;

long long solution(string numbers) {
    numbers = regex_replace(numbers, regex("zero"), "0");
    numbers = regex_replace(numbers, regex("one"), "1");
    numbers = regex_replace(numbers, regex("two"), "2");
    numbers = regex_replace(numbers, regex("three"), "3");
    numbers = regex_replace(numbers, regex("four"), "4");
    numbers = regex_replace(numbers, regex("five"), "5");
    numbers = regex_replace(numbers, regex("six"), "6");
    numbers = regex_replace(numbers, regex("seven"), "7");
    numbers = regex_replace(numbers, regex("eight"), "8");
    numbers = regex_replace(numbers, regex("nine"), "9");
    return stoll(numbers);
}
#include <string>
#include <vector>
#include <regex>
using namespace std;

long long solution(string numbers) {
    string A[10] = {"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"};
    int pos;
    for (int i=0; i<10; i++) {
        while (true) {
            pos = numbers.find(A[i]);
            if(pos == string::npos) break;
            numbers.replace(pos, A[i].length(), to_string(i));
        }
    }
    return stoll(numbers);
}