ㅁㄴㅇㄹ
[2021 카카오 채용연계형 인턴십] 숫자 문자열과 영단어 (Level 1) 본문
단순히 if문을 사용해서 풀었다. 다른사람의 풀이를 보니 정규표현식을 사용해서 굉장히 깔끔하게 해결했던데 좋은 아이디어를 얻었다. 정규표현식을 공부해서 문자열 풀이에 사용하면 좋을것 같다.
#include <iostream>
#include <vector>
#include <queue>
#include <algorithm>
#include <cstring>
#include <string>
#include <stack>
#include <cstdlib>
#include <list>
#include <unordered_map>
using namespace std;
using namespace stdext;
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
const char* s = "123";
string str = s;
string ans;
for (int i = 0; i < str.size(); i++) {
if (48 <= str[i] && str[i] <= 57) {
ans += str[i];
}
else {
if (str[i] == 'z') {
i += 3;
ans += '0';
}
else if (str[i] == 'o') {
i += 2;
ans += '1';
}
else if (str[i] == 't') {
if (str[i + 1] == 'w') {
i += 2;
ans += '2';
}
else if (str[i + 1] == 'h') {
i += 4;
ans += '3';
}
}
else if (str[i] == 'f') {
if (str[i + 1] == 'o') {
i += 3;
ans += '4';
}
else if (str[i + 1] == 'i') {
i += 3;
ans += '5';
}
}
else if (str[i] == 's') {
if (str[i + 1] == 'i') {
i += 2;
ans += '6';
}
else if (str[i + 1] == 'e') {
i += 4;
ans += '7';
}
}
else if (str[i] == 'e') {
i += 4;
ans += '8';
}
else if (str[i] == 'n') {
i += 3;
ans += '9';
}
}
}
cout << stoi(ans);
return 0;
}
'코딩테스트 연습 > 프로그래머스' 카테고리의 다른 글
K번쨰 수 (Level 1) (0) | 2021.07.24 |
---|---|
[2019 카카오 개발자 겨울 인턴십] 크레인 인형뽑기 게임 (Level 1) (0) | 2021.07.23 |
[카카오 인턴] 키패드 누르기(Level 1) (0) | 2021.07.22 |