티스토리 뷰

2021 카카오 채용연계형 인턴십

문자를 숫자로 변환하는 문제입니다.

var num = ["zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"];
var size = [4, 3, 3, 5, 4, 4, 3, 5, 5, 4];

숫자와 숫자의 길이에 해당하는 배열을 만들어서 단어와 매칭되는게 있는지 확인합니다.
있으면 해당 숫자를 결과값에 추가해주고 사이즈 -1만큼 이동합니다.
없다면 문자가 아닌 숫자가 있는 경우이므로 숫자를 결과값에 추가합니다.

반복작업이 완료되면 해당 결과값을 반환합니다.

function solution(s) {
    var num = ["zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"];
    var size = [4, 3, 3, 5, 4, 4, 3, 5, 5, 4];
    var answer = "";
    var check;
    for(var i=0; i<s.length; ++i){
        check = false;
        for(var j=0; j<10; ++j){
            if(i+size[j]>s.length){
                continue;
            }
            if(s.substring(i, i+size[j]) === num[j]){
                i += size[j];
                --i;
                answer += String(j);
                check = true;
                break;
            }
        }
        if(!check){
            answer += s[i];
        }
    }
    return Number(answer);
}
728x90
댓글
댓글쓰기 폼
공지사항