[자바스크립트/알고리즘] Pig Latin (정규식)
728x90

피그 라틴

어린이들의 말장난의 일종으로, boy를 oybay라 하는 것과 같이 맨 앞자음을 어미로 돌리고 그 뒤에 ay를 붙이는 것처럼 하는 말장난이다. 
출처 : ko.wikipedia.org/wiki/%ED%94%BC%EA%B7%B8_%EB%9D%BC%ED%8B%B4

 

피그 라틴의 규칙은 이러하다.

-단어가 모음으로 시작되면 끝에 'way'를 더한다.

-단어가 자음으로 시작되면, 첫 번째 자음 또는 자음 군집(cluster)을 단어의 끝으로 이동한 후 "ay"를 추가한다.

 

예시

  • california -> aliforniacay
  • bagel" = "agelbay"
  • "fail" = "ailfay"
  • "poo" = "oopay"
  • algorithm -> algorithmay
  • eight -> eightway

 

나의 풀이

function translatePigLatin(str) {
  let vowel = /[aeiou]/gi;

  if(str[0].match(vowel)){ //단어의 처음이 모음이라면
    return str + "way";
  } else if(str.match(vowel) === null){ //단어에 모음이 없다면
    return str + "ay"
  } else{ //위의 두가지를 제외한 경우(규칙2번)
      let vowelIdx = str.indexOf(str.match(vowel)[0]);

      return str.substr(vowelIdx) + str.substr(0, vowelIdx) + "ay";
  }
}

 

Intermediate Algorithm Scripting: Pig Latin

(문제 출처: www.freecodecamp.org)

320x100