ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 숫자 문자열과 영단어
    프로그래머스(Programmers) 2021. 12. 6. 20:52
    반응형

    문제 설명 ( 사진이 귀여운게 킹받는다...)

     

     

     

     

    제한사항

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

    입출력 예

    sresult

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

    입출력 예 설명

    입출력 예 #1

    • 문제 예시와 같습니다.

    입출력 예 #2

    • 문제 예시와 같습니다.

    입출력 예 #3

    • "three"는 3, "six"는 6, "seven"은 7에 대응되기 때문에 정답은 입출력 예 #2와 같은 234567이 됩니다.
    • 입출력 예 #2와 #3과 같이 같은 정답을 가리키는 문자열이 여러 가지가 나올 수 있습니다.

    입출력 예 #4

    • s에는 영단어로 바뀐 부분이 없습니다.

    제한시간 안내

    • 정확성 테스트 : 10초

     

    => 단순 구현 문제입니다. 

    => 주어진 string s에서 숫자로 주어진 구역은 바로 number에 push_back 하였습니다. 

    => 문자로 주어진 구역은 첫 번째 숫자와 두 번째 숫자로 비교하여 알맞은 숫자를 찾아 number에 push_back 하였습니다. 

    => ONE , TWO, THREE ,,... 의 경우 첫 번째, 두 번째 글자까지 똑같은 경우가 없으므로 2번째 글자까지만 확인하면 됩니다. 

    => 해당하는 숫자를 찾았을 경우 더 찾는 것은 시간낭비이기 때문에 for문의 break를 걸었습니다. 

    => 문제에서는 Int형 answer 를 원했으므로, stoi 함수를 사용하여 원하는 값을 반환하였습니다. 

     

    #include <string>
    #include <vector>
    #include <iostream> 
    
    
    using namespace std;
    
    vector<string> arr={"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"};
    
    int solution(string s) {
        int answer = 0;
        string number;
        int sSize = s.size(); 
        
        for(int i=0; i<sSize; i++)
        {
           if(s[i] >= '0' && s[i] <= '9' )
           {
               number.push_back(s[i]);
           }
            
            else
            {
                for(int j=0; j<10; j++)
                { 
                   if((arr[j][0] == s[i]) && (arr[j][1] == s[i+1]) ) //일치하는 단어 찾음
                    {
                       char tmp = j+ '0';
                        number.push_back(tmp);
                        i += arr[j].size() -1;
                        break;
                    }
                    
                }
            }
            
        }
        answer=stoi(number);
        return answer;
    }

     

    반응형

    '프로그래머스(Programmers)' 카테고리의 다른 글

    오픈채팅방  (0) 2021.12.09
    루시와 엘라 찾기  (0) 2021.12.08
    주식가격  (0) 2021.12.03
    위장  (0) 2021.12.01
    프린터  (0) 2021.11.28

    댓글

Designed by Who.