문제 설명

네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다.

다음은 숫자의 일부 자릿수를 영단어로 바꾸는 예시입니다.

  • 1478 → "one4seveneight"
  • 234567 → "23four5six7"
  • 10203 → "1zerotwozero3"

이렇게 숫자의 일부 자릿수가 영단어로 바뀌어졌거나, 혹은 바뀌지 않고 그대로인 문자열 s가 매개변수로 주어집니다. s가 의미하는 원래 숫자를 return 하도록 solution 함수를 완성해주세요.

참고로 각 숫자에 대응되는 영단어는 다음 표와 같습니다.

숫자영단어

0 zero
1 one
2 two
3 three
4 four
5 five
6 six
7 seven
8 eight
9 nine

 

제한사항

  • 1 ≤ s의 길이 ≤ 50
  • s가 "zero" 또는 "0"으로 시작하는 경우는 주어지지 않습니다.
  • return 값이 1 이상 2,000,000,000 이하의 정수가 되는 올바른 입력만 s로 주어집니다.

입출력 예

"one4seveneight" 1478
"23four5six7" 234567
"2three45sixseven" 234567
"123" 123

코드

int solution(string s) {
    int answer = 0;
    string dump = "";
    int size = s.size();

    for (int i = 0; i < size; i++)
    {
        if (s[i] >= '0' && s[i] <= '9') dump.push_back(s[i]);
        if (s.find("zero", i)  == i)    dump.push_back('0');
        if (s.find("one", i)   == i)    dump.push_back('1');
        if (s.find("two", i)   == i)    dump.push_back('2');
        if (s.find("three", i) == i)    dump.push_back('3');
        if (s.find("four", i)  == i)    dump.push_back('4');
        if (s.find("five", i)  == i)    dump.push_back('5');
        if (s.find("six", i)   == i)    dump.push_back('6');
        if (s.find("seven", i) == i)    dump.push_back('7');
        if (s.find("eight", i) == i)    dump.push_back('8');
        if (s.find("nine", i)  == i)    dump.push_back('9');
    }

    answer = stoi(dump);

    return answer;
}
더보기

str1.find(....)

함수 원형 : size_t find (const string& str, size_t index = 0) const;

함수 원형 : size_t find (const char* arr, size_t index = 0) const;

함수 설명 : 매개변수로 들어온 문자열과, 내 문자열중에 일치하는 게 있는지 확인하는 함수입니다.  

만약에 일치하는게 있다면, 일치하는 부분의 첫번째 순서(index)를 반환합니다. 

두번째 매개변수로 들어온 index는 어느 위치에서 부터 찾을까 입니다.

함수 예시 : str2.find("Blog");         // "BlogBlogBlogBlog" -> 0 을 반환합니다.

함수 예시 : str2.find("Blog", 5);    // 5번째 인자부터 blog를 찾게되니 BlogBlogBlogBlog 빨간색 l에서부터 찾게되므로 그 다음에 나오는 B의 위치인 8을 반환할 것 입니다.

출처: https://blockdmask.tistory.com/338 [개발자 지망생]

+ Recent posts