Algorithm/Algorithms Practice
[프로그래머스/C++] 숫자 문자열과 영단어
Patrick_
2022. 10. 11. 15:00
1. 개요
https://school.programmers.co.kr/learn/courses/30/lessons/81301
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
1-1. 설명
네오와 프로도가 숫자놀이를 하고있다. 네오가 프로도에게 숫자를 건낼 때 일부 자릿수를 영단어로 바꾼 카드를 건내주면 프로도는 원래 숫자를 찾는 게임이다. 우리는 숫자를 return 하도록 하는 함수를 구현한다.
1-2. 제한 사항
- 입력으로 들어오는 s는 1 이상 50 이하
- s가 "zero", 0으로 시작하는 경우는 없음
2. 구현
2-1. 풀이
받은 문자열을 반복문을 통해 숫자면 그대로 result에 저장하고, 문자이면 저장한다. 그리고 영문으로 된 숫자가 하나 완성되면 그 숫자에 맞는 수가 저장된다.
2-2. 코드
#include <string>
#include <vector>
using namespace std;
string nums[10] = {"zero", "one", "two" , "three", "four", "five", "six", "seven", "eight", "nine"};
int solution(string s) {
string curStr = "", result = "";
for (char ch : s) {
if (ch >= '0' && ch <= '9') result += ch;
else {
curStr += ch;
for (int i = 0; i < 10; i++) {
if (curStr == nums[i]) {
result += (char) i + '0';
curStr = "";
break;
}
}
}
}
return stoi(result);
}