Dashatize it ( 6 kyu )
문제
Given a number, return a string with dash’-‘marks before and after each odd integer, but do not begin or end the string with a dash mark.
Ex:
dashatize(274) -> '2-7-4'
dashatize(6815) -> '68-1-5'
홀수는 앞뒤로 대시를 붙여 리턴하는 문제
풀이
function dashatize(num) {
let str = num.toString();
let result = '';
for ( let i = 0; i < str.length; i++ ) {
str[i] % 2 === 1 ? result += `-${str[i]}-` : result += str[i];
}
while ( result[0] === '-' ) {
result = result.slice(1)
}
while ( result[result.length-1] === '-' ) {
result = result.slice(0, result.length-1);
}
return result.replace(/--/g, '-');
};
문자열로 변환 후 홀수인 경우에 대시를 앞뒤로 붙이고 마지막에 앞뒤를 자르고, 두개인 경우를 한개로 바꿔주고 리턴
다른 사람의 풀이
function dashatize(num) {
return String(num)
.replace(/([13579])/g, "-$1-")
.replace(/--+/g, "-")
.replace(/(^-|-$)/g, "")
}
신기한 정규식