어흥
[프로그래머스] 숫자 문자열과 영단어 (C++) 본문
728x90
반응형
문제 링크: https://programmers.co.kr/learn/courses/30/lessons/81301
1. 주의할 점
- 딱히 없다...
2. 구현
- 여러 가지 방법이 존재한다. Map을 통해 저장&비교, Substring 그리고 나와 같은 풀이
- 만약 C가 숫자라면 Str에 붙이고, 영어라면 0~9까지 앞글자를 비교하여 해당 숫자를 찾은 후, i의 값을 변경시킨다. 이때, 첫 글자가 같은 숫자가 있으므로 이 경우에는 2번째 글자까지 비교한다
- stoi를 통해 Str을 정수로 치환하고 answer에 할당한 후, 반환한다
#include <string>
#include <vector>
#include <stdlib.h>
using namespace std;
int solution(string s) {
string str="";
for(int i=0;i<s.size();i++){
char c = s[i];
if('a'<=c && c<='z'){ //문자
if(c=='z'){ //zero
str+='0';
i+=3;
}
else if(c=='o'){ //one
str+='1';
i+=2;
}
else if(c=='t'){ //two,three
if(s[i+1]=='w'){
str+='2';
i+=2;
}
else{
str+='3';
i+=4;
}
}
else if(c=='f'){ //four,five
if(s[i+1]=='o') str+='4';
else str+='5';
i+=3;
}
else if(c=='s'){ //six,seven
if(s[i+1]=='i'){
str+='6';
i+=2;
}
else{
str+='7';
i+=4;
}
}
else if(c=='e'){ //eight
str+='8';
i+=4;
}
else{ //nine
str+='9';
i+=3;
}
}
else //숫자
str+=c;
}
int answer = stoi(str);
return answer;
}
728x90
반응형
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 표 편집 (C++) (0) | 2021.07.16 |
---|---|
[프로그래머스] 거리두기 확인하기 (C++) (0) | 2021.07.16 |
[프로그래머스] 괄호 회전하기 (C++) (0) | 2021.05.10 |
[프로그래머스] 보행자 천국 (C++) (0) | 2021.05.06 |
[프로그래머스] 합승 택시 요금 (C++) (0) | 2021.05.06 |
Comments