analogcoding

algorithm 연습 본문

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('')
}

결과 확인

runJS 채고..

'Study JS for me > Algorithm' 카테고리의 다른 글

algorithm 연습6  (0) 2019.04.28
algorithm 연습5  (0) 2019.04.27
algorithm 연습4  (0) 2019.04.27
algorithm 연습3  (0) 2019.04.26
algorithm 연습2  (0) 2019.04.26
Comments