본문 바로가기
코딩 문제/프로그래머스 [ JavaScript ]

[ 프로그래머스 / Javascript ] 가운데 글자 가져오기

by CODESIGN 2022. 12. 17.

https://school.programmers.co.kr/learn/courses/30/lessons/12903

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

문제 설명


 

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

 

 

제한사항


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

 

 

입출력 예


 

s return
"abcde" "c"
"qwer" "we"

 

 

나의 풀이


일단 문자열을 2로 나눠준 뒤 return 구문에서 짝수일 경우 중앙의 두 글자를 리턴하고 홀수일 경우 중앙에 위치할 글자를 리턴했다.

 

function solution(s) {
    let divide = Math.floor(s.length/2);
    return (s.length % 2 == 0) ? s.split("").splice(divide-1,2).join("").toString(): s.split("").splice(divide,1).toString();
}

 

 

다른 풀이


런타임은 비슷한데 코드가 훨씬 간결하다. 나의 코드에서는 true, false 부분에서 split()을 사용하다 보니 코드가 길어졌다. splice()를 쓰기 위해 split()을 사용하여 배열로 바꿔주고 다시 join()을 해줘야 했다. 아래의 코드는 substr을 사용하여 배열로 바꿔줄 필요 없이 문자열에서 바로 필요한 알파벳을 뽑아 출력하게 했다.

 

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

 

 

 

댓글