본문 바로가기

코딩 -/프로그래머스 해설

프로그래머스 1단계 C언어 숫자 문자열과 영단어

반응형

소스 해석은 추 후에 올립니다.

#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
#include <string.h>


// zero one two three four five six seven eight nine ten
int solution(const char* s) {
    int length = strlen(s);
    int answer = 0;
    
    for (int i=0;i<length;i++){
        if ('0'<=s[i]&&s[i]<='9'){
            answer = answer*10;
            answer += s[i]-'0';
        }
        else if (s[i]=='o'){    //1
            answer = answer*10;
            answer += 1;
            i = i+2;
        }
        else if (s[i]=='t'&&s[i+1]=='w'){   //2
            answer = answer*10;
            answer += 2;
            i = i+2;
        }else if (s[i]=='t'&&s[i+1]=='h'){  //3
            answer = answer*10;
            answer += 3;
            i = i+4;
        }else if (s[i]=='f'&&s[i+1]=='o'){  //4
            answer = answer*10;
            answer += 4;
            i = i+3;
        }
        else if (s[i]=='f'&&s[i+1]=='i'){   //5
            answer = answer*10;
            answer += 5;
            i = i+3;
        }else if (s[i]=='s'&&s[i+1]=='i'){  //6
            answer = answer*10;
            answer += 6;
            i = i+2;
        }else if (s[i]=='s'&&s[i+1]=='e'){  //7
            answer = answer*10;
            answer += 7;
            i = i+4;
        }else if (s[i]=='e'){   //8
            answer = answer*10;
            answer += 8;
            i = i+4;
        }else if (s[i]=='n'){  //9
            answer = answer*10;
            answer += 9;
            i = i+3;
        }
        else{       //0
            answer = answer*10;
            i = i+3;
        }
    }
    
    return answer;
}
반응형