Notice
Recent Posts
Recent Comments
Link
«   2025/08   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
Archives
Today
Total
관리 메뉴

class : Design Code

[프로그래머스][C++] 2021 카카오 채용연계형 인턴십 : 숫자 문자열과 영단어 본문

C++/CodingTest

[프로그래머스][C++] 2021 카카오 채용연계형 인턴십 : 숫자 문자열과 영단어

클디코 2023. 3. 7. 18:01

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

1.string의 기능들을 사용하여 풀었다.

#include <string>
#include <vector>
#include <iostream>

//find로 문자 찾고 index 반환받고 문자열 지우고 숫자 insert
using namespace std;

vector<string> alpha={"zero","one","two","three","four","five","six","seven","eight","nine"};

int solution(string s) {
    int answer = 0;

    for(int i=0;i<alpha.size();i++){
        if(s.find(alpha[i])!=string::npos){
            while(s.find(alpha[i])!=string::npos){
                int index = s.find(alpha[i]); 
                string numtoStr = to_string(i);
                s.erase(index,alpha[i].length());
                s.insert(index,numtoStr);
            }
        }
    }
    answer=stoi(s);
    return answer;
}
테스트 1 통과 (0.02ms, 4.14MB)
테스트 2 통과 (0.02ms, 4.2MB)
테스트 3 통과 (0.02ms, 3.67MB)
테스트 4 통과 (0.02ms, 4.07MB)
테스트 5 통과 (0.02ms, 4.21MB)
테스트 6 통과 (0.02ms, 4.21MB)
테스트 7 통과 (0.02ms, 4.2MB)
테스트 8 통과 (0.02ms, 4.21MB)
테스트 9 통과 (0.02ms, 4.21MB)
테스트 10 통과 (0.01ms, 4.2MB)

 

2. replace를 사용하고 변수를 좀 더 정리했다.

#include <string>
#include <vector>
#include <iostream>

//find로 문자 찾고 index 반환받고 문자열 지우고 숫자 replace
using namespace std;

vector<string> alpha={"zero","one","two","three","four","five","six","seven","eight","nine"};

int solution(string s) {
    int answer = 0;
    for(int i=0;i<alpha.size();i++){
        string alp = alpha[i];
        while(s.find(alp)!=string::npos){
            s.replace(s.find(alp),alp.length(),to_string(i));
        }
    }

    return stoi(s);
}
테스트 1 통과 (0.02ms, 3.73MB)
테스트 2 통과 (0.01ms, 4.21MB)
테스트 3 통과 (0.02ms, 4.21MB)
테스트 4 통과 (0.02ms, 4.21MB)
테스트 5 통과 (0.02ms, 3.71MB)
테스트 6 통과 (0.02ms, 4.02MB)
테스트 7 통과 (0.02ms, 3.7MB)
테스트 8 통과 (0.02ms, 4.01MB)
테스트 9 통과 (0.02ms, 4.19MB)
테스트 10 통과 (0.01ms, 4.15MB)