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
'알고리즘 > FreeCodeCamp' 카테고리의 다른 글
[자바스크립트/알고리즘] 배열 여러개를 합친 후 유일한 값 반환하기 (set 객체, flat 함수) (0) | 2021.02.01 |
---|---|
[자바스크립트/알고리즘] DNA 페어링 (0) | 2021.02.01 |
[자바스크립트/알고리즘] 공백을 붙임표(하이픈)로 바꾸기 (정규식) (0) | 2021.01.19 |
[자바스크립트/알고리즘] 특정 문자열로 끝나는지 확인 / 정규식, endsWith() 이용 (0) | 2021.01.18 |
[자바스크립트/알고리즘] 두 배열 중복 값 제거 (concat, filter) (0) | 2021.01.17 |