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 |