1Day 1Practice

[codewars] Simple Pig Latin

Bittersweet- 2022. 8. 2. 16:42
728x90

Instruction.

Move the first letter of each word to the end of it, then add 'ay' to the end of the word. Leave punctuation marks untouched.

각 단어의 첫번째 글자를 단어의 마지막으로 옮기고 그 뒤에 'ay'를 추가해라. 부호는 변경하지 마라.

 

Example.

pigIt('Pig latin is cool'); // igPay atinlay siay oolcay
pigIt('Hello world !'); // elloHay orldway !

 


 

Solution.

function pigIt(str){
  let result = [];
  let arr = str.split(' ');

  for(let word of arr){
    if((/([a-zA-Z])/).test(word)){
      result.push(word.substring(1) + word[0] + "ay");
    }else{
      result.push(word);
    }
  }
  return result.join(" ");
}

* str.substring() - 문자열의 특정 위치에서 시작해서 특정 문자 수만큼의 문자를 반환.

 

Other solutions.

function pigIt(str) {
  const arrayWord = str.split(' ');
  return arrayWord.map(function(word) {
    const firstletter = word.charAt(0);
    return word.slice(1) + firstletter + 'ay';
  }).join(' ');
}

* str.charAt() - 문자열에서 특정 인덱스에 위치하는 유니코드 단일 문자를 반환

* str.slice() - 문자열의 일부를 추출하면서 새로운 문자열을 반환

function pigIt(str) {
  return str.replace(/\w+/g, (w) => {
    return w.slice(1) + w[0] + 'ay';
  });
}

* str.replace() - 어떤 패턴(문자열이나 RegExp)에 일치하는 일부 또는 모든 부분이 교체된 새로운 문자열을 반환

 

'1Day 1Practice' 카테고리의 다른 글

[codewars] Sum of pairs  (0) 2022.08.05
[codewars] pick peaks  (0) 2022.08.04
[codewars] Moving Zeros To The End  (0) 2022.07.12
[codewars] Count characters in your string  (0) 2022.07.08
[codewars] Human Readable Time  (0) 2022.07.07