본문 바로가기
알고리즘

가운데 글자 가져오기

by 코딩달림 2022. 11. 10.
728x90

프로그래머스 : 가운데 글자 가져오기

문자열의 가운데 인덱스값을 구해 출력하는 문제입니다.


문제 설명

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

제한사항
- s는 길이가 1 이상, 100이하인 스트링입니다.

입출력 예

s 결과
"abcde" "c"
"qwer" "we"

1. 해설

소스보기
function solution(s) {

    if(s.length % 2 == 1){
        return s.slice(Math.floor(s.length/2), Math.floor(s.length/2)+1);
    } else {
        return s.slice(s.length/2 - 1, s.length/2 + 1);
    }
}

가운데 인덱스를 구하기 위해선 length 메서드를 사용해 문자열의 총 길이를 알아야 합니다.
이때 나오는 소수값은 소숫점을 버려 정수값을 취하는 Math.floor 메서드를 사용할 수 있습니다.
그 다음은 인덱스 값으로 문자열을 반환하는 메서드를 사용하면 출력이 완료됩니다. 저는 여기서 slice( ) 메서드를 사용했습니다.

※ 올림/반올림/버림 메서드

숫자의 소숫점을 처리해 정수값으로 만드는 메서드입니다.

Math.ceil(int) : 올림하여 정수값을 반환합니다.
Math.round(int) : 반올림하여 정수값을 반환합니다.
Math.floor(int) : 버림하여 정수값을 반환합니다.


2. 다른 풀이

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

위의 풀이법을 삼항연산자를 써서 더욱 짧고 간결하게 표현한 방식입니다.
삼항연산자를 사용하면 이런식으로 보기 좋게 코드를 작성할 수 있습니다.

'알고리즘' 카테고리의 다른 글

부족한 금액 계산하기  (2) 2022.11.11
폰켓몬  (1) 2022.11.10
행렬 덧셈  (1) 2022.11.10
시저 암호  (3) 2022.11.09
수박수박수박수박  (2) 2022.11.07

댓글


광고 준비중입니다.