티스토리 뷰

Data Structure & Algorithm

JS_Pig Latin

Alledy 2019. 3. 21. 19:39
  • 문제

    첫 번째 글자가 자음일 경우 문자의 맨 뒤로 보낸다. 앞글자가 모음이 될 때까지 반복한 뒤에 "ay"를 붙인다.

    첫 번째 글자가 모음일 경우 문자 맨 뒤에 "way"를 붙인다.

     

    • 예시
    translatePigLatin("glove") should return "oveglay".
    

  • 내가 푼 답

    function translatePigLatin(str) {
    if((/[aeiou]/).test(str[0])) {
    return str + "way";
    }
    if(!(/[aeiou]/).test(str)) {
    return str + "ay";
    }
    while(!(/[aeiou]/).test(str[0])) {
    var result = str.substring(1) + str[0];
    str = result;
    }
    return result + "ay";
    }

  • Intermediate Solution

    function translatePigLatin(str) {
    function check(obj) {
    return ['a','i','u','e','o'].indexOf(str.charAt(obj)) == -1 ? check(obj + 1) : obj;
    }
    return str.substr(check(0)).concat((check(0) === 0 ? 'w' : str.substr(0, check(0))) + 'ay');
    }

     

  • Advanced Solution

    function translatePigLatin(str) {
    var strArr = [];
    var tmpChar;
    // check if the char is consonant using RegEx
    function isConsonant(char) {
    return !/[aeiou]/.test(char);
    }
    // return initial str + "way" if it starts with vowel
    // if not - convert str to array
    if (!isConsonant(str.charAt(0)))
    return str + "way";
    else
    strArr = str.split("");
    // push all consonats to the end of the array
    while (isConsonant(strArr[0])) {
    tmpChar = strArr.shift();
    strArr.push(tmpChar);
    }
    // convert array to string and concatenate "ay" at the end
    return strArr.join("")+"ay";
    }

'Data Structure & Algorithm' 카테고리의 다른 글

선택정렬, 퀵정렬  (0) 2019.03.28
분할정복  (0) 2019.03.28
JS_Wherefore Art Thou  (0) 2019.03.21
JS_Diff Two Arrays  (0) 2019.03.20
JS_Sum All Numbers in Range  (0) 2019.03.20
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함