728x90
반응형
[프로그래머스] 2021 카카오 채용 연계형 인턴십 /숫자 문자열과 영단어 / C++ 풀이
📝문제 설명
네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다.
다음은 숫자의 일부 자릿수를 영단어로 바꾸는 예시입니다.
- 1478 → "one4seveneight"
- 234567 → "23four5six7"
- 10203 → "1zerotwozero3"
이렇게 숫자의 일부 자릿수가 영단어로 바뀌어졌거나, 혹은 바뀌지 않고 그대로인 문자열 s가 매개변수로 주어집니다. s가 의미하는 원래 숫자를 return 하도록 solution 함수를 완성해주세요.
참고로 각 숫자에 대응되는 영단어는 다음 표와 같습니다.
🔎 제한사항
- 1 ≤ s의 길이 ≤ 50
- s가 "zero" 또는 "0"으로 시작하는 경우는 주어지지 않습니다.
- return 값이 1 이상 2,000,000,000 이하의 정수가 되는 올바른 입력만 s로 주어집니다.
🎀입출력 예시
🧐 풀이
#include <string>
#include <vector>
using namespace std;
int solution(string s) {
int answer = 0;
vector<pair<string, string>> numWords = {
{"zero", "0"}, {"one", "1"}, {"two", "2"},
{"three", "3"}, {"four", "4"}, {"five", "5"},
{"six", "6"}, {"seven", "7"}, {"eight", "8"},
{"nine", "9"}
};
for (auto& numWord : numWords) {
size_t pos;
while ((pos = s.find(numWord.first)) != string::npos) { // 단어 찾기
s.replace(pos, numWord.first.length(), numWord.second); // 치환
}
}
return stoi(s);
}
728x90
반응형
'◆C# > C# : 프로그래머스 문제 풀이' 카테고리의 다른 글
[프로그래머스] 최대공약수와 최소공배수 / C++ 풀이 (0) | 2024.11.26 |
---|---|
[프로그래머스] 소수찾기 / C++ 풀이 (0) | 2024.11.26 |
[프로그래머스] 카드 뭉치 / C++ 풀이 (0) | 2024.11.25 |
[프로그래머스] 같은 숫자는 싫어 / C++ 풀이 (0) | 2024.11.25 |
[프로그래머스] 정수 내림차순으로 배치하기 / C++ 풀이 (0) | 2024.11.25 |