GitHubSeob
C++ / 프로그래머스 / 숫자 문자열과 영단어 본문
문제
https://programmers.co.kr/learn/courses/30/lessons/81301
코딩테스트 연습 - 숫자 문자열과 영단어
네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다. 다음은 숫자의 일부 자
programmers.co.kr
문제풀이
s[0]부터 s의 크기만큼 반복하면서
z로 시작하면 num에 0을 push 한다.
zero는 4글자이고 if문이 종료되면 for문의 조건으로 인해 i가 +1 되므로 if문에서 i+=3을 해서 zero 다음 문자열부터 for문을 돌게 한다.
마찬가지로 다른 문자들도 이런 식으로 if문으로 조건을 걸어준다.
마지막으로 숫자가 들어온다면 그냥 숫자만 push 해준다.
코드
#include <string>
#include <vector>
using namespace std;
int solution(string s) {
string num = "";
for (int i = 0; i < s.size(); ++i) {
if (s[i] == 'z') {
num.push_back('0');
i += 3;
}
else if (s[i] == 'o') {
num.push_back('1');
i += 2;
}
else if (s[i] == 't') {
if (s[i + 1] == 'w') {
num.push_back('2');
i += 2;
}
else {
num.push_back('3');
i += 4;
}
}
else if (s[i] == 'f') {
if (s[i + 1] == 'o') {
num.push_back('4');
i += 3;
}
else {
num.push_back('5');
i += 3;
}
}
else if (s[i] == 's') {
if (s[i + 1] == 'i') {
num.push_back('6');
i += 2;
}
else {
num.push_back('7');
i += 4;
}
}
else if (s[i] == 'e') {
num.push_back('8');
i += 4;
}
else if (s[i] == 'n') {
num.push_back('9');
i += 3;
}
else num.push_back(s[i]);
}
return stoi(num);
}
'Programmers > Level 1' 카테고리의 다른 글
C++ / 프로그래머스 / 소수 만들기 (0) | 2021.08.15 |
---|---|
C++ / 프로그래머스 / 내적 (0) | 2021.08.15 |
C++ / 프로그래머스 / K번째수 (0) | 2021.08.15 |
C++ / 프로그래머스 / 위클리 챌린지 2주차 / 상호 평가 (0) | 2021.08.11 |
C++ / 프로그래머스 / 키패드 누르기 (2) | 2021.08.08 |