반응형
https://programmers.co.kr/learn/courses/30/lessons/81301
카카오 2021 인턴십 - 숫자 문자열과 영단어 (프로그래머스 문제)
#include <string>
#include <vector>
using namespace std;
int solution(string s) {
string answer = "";
int len=s.length();
for(int i=0;i<len;i++) {
char c=s[i];
if(c>='0'&&c<='9') {
answer+=c;
continue;
}
if(s.substr(i,3)=="one") {
answer+='1';
i+=2;
} else if(s.substr(i,3)=="two") {
answer+='2';
i+=2;
} else if(s.substr(i,5)=="three") {
answer+='3';
i+=4;
} else if(s.substr(i,4)=="four") {
answer+='4';
i+=3;
} else if(s.substr(i,4)=="five") {
answer+='5';
i+=3;
} else if(s.substr(i,3)=="six") {
answer+='6';
i+=2;
} else if(s.substr(i,5)=="seven") {
answer+='7';
i+=4;
} else if(s.substr(i,5)=="eight") {
answer+='8';
i+=4;
} else if(s.substr(i,4)=="nine") {
answer+='9';
i+=3;
} else if(s.substr(i,4)=="zero") {
answer+='0';
i+=3;
}
}
return stoi(answer);
}
로직 순서
1. 숫자인지 아닌지 체크
2. 숫자라면 answer에 추가하고 continue; 하여 loop 진행
3. 숫자가 아니라면, 이후 n글자의 부분 문자열(위 코드의 substr)을 체크하여 zero ~ nine 까지의 문자열 비교 검사 수행
4. 해당하는 숫자를 answer에 추가하고 loop 진행
반응형
'개발 > 알고리즘 & 자료구조' 카테고리의 다른 글
[카카오 2018 코딩테스트 1차] 비밀지도 (2) | 2021.08.30 |
---|---|
[카카오 2019 BLIND RECRUITMENT] 실패율 (프로그래머스) (0) | 2021.08.28 |
[2020 카카오 인턴쉽][알고리즘][프로그래머스] 키패드 누르기 (2) | 2021.08.23 |
[코딩테스트][카카오] 2021 KAKAO BLIND RECRUITMENT - 신규 아이디 추천 (0) | 2021.08.21 |
[프로그래머스][카카오] 크레인 인형뽑기 게임 (2019 카카오 개발자 겨울 인턴십) (6) | 2021.08.13 |