문제 설명

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

재한사항

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

입출력 예

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

 

나의 풀이

function solution(s) {
    let strLength = s.length;
    let str = Math.round(s.length / 2) - 1;
    
    if(strLength % 2 == 0 ) {
        return s.slice(str, str+2)
    } else {
        return s.slice(str, str+1)
    }
}

이번 풀이는 사실 구글링을 많이해서 풀긴했는데, slice로 앞뒤로 문자를 잘라 중간에만 남도록 하는 것인데

Math.round는 반올림을 하는 메서드이다. 이거 말고도 Math.floor를 사용했어도 될 거 같다.

뭔가 머리속에는 함수가 떠오르는데 이걸 쉽게 사용하지 못하겠다..

 

다른 사람의 풀이

function solution(s) {
    return s.substr(Math.ceil(s.length / 2) - 1, s.length % 2 === 0 ? 2 : 1);
}

다른 사람의 풀이는 삼항 연산자를 이용해서. 푼거 같다. 

math.celi는 작은수 큰수 중에 가장 작은수로 변환해주는 거다. 진짜 이렇게 푸는 사람들 경이롭다...

열심히 공부해야겠다.

출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges

오류확인자