Programmers | #3

Ssss·2021년 2월 11일
0

Algorithm

목록 보기
3/13
post-thumbnail
post-custom-banner

문제 설명

단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다.

제한사항

s는 길이가 1 이상, 100이하인 스트링입니다.

입출력 예

나의 풀이

function solution(s) {

answer = []
array = s.split("")
  if (s.length % 2 !==0){
  half = (s.length-1) / 2
  for(i=0; i<array.length; i++) {
   if (i === half) {
    answer.push(array[i])
  }
} return answer.toString()}
  if (s.length % 2 === 0) {
    index = s.split("").length/2
    return array.slice(index-1, index+1).join('')
  }
  }

다른 사람의 풀이를 보고 리뷰

다른 사람들의 답을 보니,,, 나 혼자 말도 안되게 길게 풀었구나라는 생각이 들었다 ..😭

function solution(s){
  return s.substring(Math.ceil(s.length/2)-1, Math.floor(s.length/2)+1)
}
  • substring(): string 객체의 시작 인덱스로 부터 종료 인덱스 전 까지 문자열의 부분 문자열을 반환합니다.
    첫번째 인덱스 포함 ~ 두번째 인덱스 직전문자까지! (두번째 인덱스를 포함 안함!)
const str = 'Mozilla';
str.substring(1,3) // 'oz'

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/String/substring

  • 만약 홀수개의 letters가 있을경우
s = "abcdefg" //s.length = 7
Math.ceil(7/2)-1, Math.floor(7/2)+1 
s.substring(3, 4) // 'd'
  • 만약 짝수개의 letters가 있을경우
s = "qwer" // s.length = 4
Math.ceil(4/2)-1, Math.floor(4/2)+1 
s.substring(1, 3) // 'we'
profile
Front-end Developer 👩‍💻
post-custom-banner

0개의 댓글