Programmers | #Lv1 "가운데 글자 가져오기"

블로그 이사 완료·2022년 9월 22일
0
post-thumbnail

문제 설명

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


제한 조건

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


입/출력 예

sreturn
"abcde""c"
"qwer""we"

나의 풀이

function solution(s) {
  let answer = '';
  if (s.length % 2 == 0) {
    let even = Math.floor(s.length / 2);
    let evenAnswer = [s[even - 1], s[even]].join('');
    return evenAnswer;
  } else {
    let odd = Math.floor(s.length / 2);
    return s[odd];
  }
}

다른 풀이

function solution(s) {
    const mid = Math.floor(s.length/2);
    return s.length %2 === 1 ? s[mid] : s[mid-1]+s[mid];
}

Review

이번 문제는 배열의 중간 인덱스의 값을 출력하는 문제였다.

일단 배열의 길이를 2로 나눈 값을 반올림 해서 중간 인덱스 번호를 찾았다.

리턴에는 두 가지 조건이 있었다.
배열의 개수가 짝수라면 중간 인덱스 값+이전 인덱스 값을 더해 리턴하고, 홀수라면 중간 인덱스 값을 리턴하면 됐다.

나는 내가 문제를 해석한 그대로 식으로 작성해서 풀이했지만, 이를 삼항연산자를 통해 더 간단하게 풀이 할 수도 있었다.

그리고 배열의 두 값을 합칠 때 굳이 join() 을 안쓰고 + 로 합쳐도 됐었다.. 다 풀고 한 번씩만 더 생각하자..


profile
https://kyledev.tistory.com/

0개의 댓글