analogcoding

algorithm 연습2 본문

Study JS for me/Algorithm

algorithm 연습2

be well 2019. 4. 26. 17:31

문제. 인자로 받는 문자열의 알파벳을 알파벳의 고유 index로 리턴.

 

Ex) input : "The sunset sets at twelve o' clock."   =>

      output : "20 8 5 19 21 14 19 5 20 19 5 20 19 1 20 20 23 5 12 22 5 15 3 12 15 3 11"

 

해결방안.

 

1. 대소문자 구분 없이 작동하게 만들기.

2. 알파벳의 고유 index를 찾기 위해 알파벳 배열 만들기.

3. 문자열을 각 요소로 만들어 배열로 담기.
4. 특수문자나 공백 걸러내기.

5. iput으로 오는 배열의 요소를 알파벳 배열에 indexOf를 사용해서 index 찾기.

6. 다시 문자열로 리턴.

 

먼저 함수를 생성하고 input의 값을 소문자로 통일하고 각 배열로 나눠준다. 그리고 알파벳 배열과 output이 나올 빈 배열 생성.

var alphabetPosition = function(str) {

  str = str.toLowerCase(); // 소문자로 통일
  str = str.split('');     // 배열로 만들기

  var alpabet = "abcdefghijklmnopqrstuvwxyz"; // 알파벳 고유index를 가진 배열 생성
    
  var result = [];

특수문자와 공백을 걸러내기 위해 for문과 if문을 사용해 각 값을 비교.

 for(let i = 0 ; i < str.length; i++){
    for(let j = 0; j < alpabet.length; j++){
      if(str[i]===alpabet[j]){
      
// alpabet[j]는 알파벳뿐이라 str[i]에서 특수문자나 공백은 제외하고 알파벳일 때만 동작.

알파벳 배열에서 input에 index를 확인 후 빈 배열에 넣어주고 다시 문자열로 리턴.

result.push(1+(alpabet.indexOf(str[i]))) // alpabet 배열에서 a의 index는 0이므로 +1을 해준다.
        // indexOf를 사용해서 alpabet 에서 str[i]의 index를 찾는다.
      }
    }
  }
  return result.join(' ')
}

 

결과 확인 

'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 연습  (0) 2019.04.26
Comments