Study JS for me/Algorithm
algorithm 연습
be well
2019. 4. 26. 16:57
문제. 인자로 받는 문자열의 값이 연속된 홀수일 경우 홀수와 홀수 사이에 '-'를 입력한 후 리턴.
Ex) input : '454793' => output : '4547-9-3'
해결방안.
1. 문자열을 하나씩 분리해서 배열에 각 요소를 담음.
2. 값이 홀수인지 확인.
3. 연속된 문자열 또한 홀수일시 '-' 추가.
4. 다시 배열을 문자열로 합침.
먼저 문자열을 인자로 받는 함수를 만들어준다.
var DashInsert = function(str){
}
문자열을 분리해서 배열로 만들고 for문과 if문으로 값이 홀수인지 확인.
str = str.split('')
for(let i = 0; i < str.length; i++){
if(Number(str[i])%2!==0 &&
Number(str[i+1])%2!==0 &&
i+1 < str.length){
/* str[i]는 문자열 상태이므로 Number()를 사용해서 숫자로 바꾼 후 홀수인지 판별한다.
str[i]와 str[i+1] 이 모두 홀수이고 i+1 의 값이 str.length 보다
길지 않아야 문자열 끝에 - 붙는 일이 없음 */
홀수로 판별된 요소에 '-' 를 더해준 뒤 다시 배열을 문자열로 합친 후 리턴.
str[i] = str[i] + '-'
}
}
return str.join('')
}
결과 확인
