알고리즘

조영민·2022년 3월 11일
0
post-custom-banner

가운데 글자 가져오기

처음에 어떻게 접근할지 막막했다..
20분 정도 생각하다가 감이 잡혔는데
그때의 내 생각의 흐름을 적어보자

  1. 한글자씩 나눠볼까?
  2. 그 한글자를 어떻게 출력할까?
  3. 아, 인덱스로 그 글자를 출력하면 되겠네!
  4. 그럼 글자 수가 6글자(짝수)일때는 가운데 두 글자를 출력해야하니
    3, 4번 글자를 가져오면 되겠구나. (인덱스는 0부터 시작)
  5. 그럼.. if문으로 짝수일경우, 홀수일 경우를 나눠서 문자열의 인덱스 번호로 출력하면되겠다.
  6. 예를들어 6나누기2의 몫은 3 <- 이 3은 인덱스번호로 치면 2니까
    짝수면 몫의 -1에 몫 을 더하면 가운데 문자열 두글자를 출력하고
    홀수면 몫을 그냥 출력해야겠다.

자, 이걸 코드로 풀어내보면

function solution(s) {
  let answer = '';
  if (s.length % 2 === 0) {
      answer = s[s.length / 2 -1] + s[s.length / 2]
  } else {
      answer = s[s.length / 2] 
  }
  return answer;
}

답을 제출하고 다른사람의 풀이를 봤는데
substr() 이라는 함수를 사용하더라.

substr(a, b)
배열의 a인덱스에서 시작하여
b개수 만큼 배열을 반환한다.
ex) let str = "abdefg"
str.substr(2, 2) -> "de"

답은 제출했지만 꼭 까먹지말아야 할것!
정답을 담을 빈 변수를 선언해주기!! let answer = '';
그리고 함수니까 return으로 값주기!

replit으로 할때는 코드를 왼쪽화면에 넣어두고
오른쪽화면에 변수선언 후 값을넣고, solution함수에 값을 넣어 코드실행하기!!

substr() 옛날함수라 slice()를 쓰는게 좋다는정보 추가!!++

profile
프론트엔드 개발자
post-custom-banner

0개의 댓글