Java 가운데 글자 가져오기 (프로그래머스 Lv1)

김현찬·2025년 6월 9일

문제

프로그래머스 Lv.1 가운데 글자 가져오기 문제.

문제 설명

입출력 예시

작성 코드

class Solution {
    public String solution(String s) {
        String answer = "";
        int strLength = s.length();
        
        
            answer = strLength % 2 != 0 
                ? s.substring(strLength / 2, strLength / 2 +1)
                : s.substring(strLength / 2 -1, strLength / 2 +1);
        
        
        return answer;
    }
}

처음 문제를 접했을 때 들었던 생각은 문자열의 길이를 구하고, 홀수 짝수 여부를 판별해 가져올 글자의 범위를 정하면 되겠다는 생각이 들었습니다.

하여 문자열의 길이를 strLength 변수에 담아준 뒤, if()문을 사용해 홀수 짝수 여부를 판별하려 했습니다.

그러나 현재 문제에서 주어진 경우의 수가, 홀수와 짝수 두 가지밖에 없으므로, 삼항연산자를 사용해도 될 것 같다는 생각이 들었습니다.

리턴 함수인 answerstrLength % 2 != 0 2로 나누었을 때 0이 아니라면(글자의 길이가 홀수라면),

? s.substring(strLength / 2, strLength / 2 +1)

s.substring(strLength / 2,
문자열 길이를 2로 나눈 범위부터
(입 출력 예시의 글자수는 5이므로 / 2 했을 때 2) 즉 index 2부터

strLength / 2 +1)
(index 2 + 1) 즉 index 3 전까지의 글자를 반환해줘.

입 출력 예시의 'abcde'에서 index 2c이고, index 3d입니다.
따라서 글자의 길이가 홀수인 'abcde'의 경우 c부터 d전까지의 글자를 반환하므로,
가운데 글자인 c를 반환합니다.

: s.substring(strLength / 2 -1, strLength / 2 +1);

글자의 길이가 짝수라면,

s.substring(strLength / 2 -1 문자열의 길이를 반으로 나눈 값의 -1
(입 출력 예시의 글자수는 4이므로 / 2 -1을 했을 때 1) 즉 index 1부터

strLength / 2 +1);
(같은 맥락으로 / 2 + 1을 했을 때 3) 즉 index 3 전까지의 글자를 반환해줘.

입 출력 예시의 'qwer'에서 index 1w이고, index 3r입니다.
따라서 글자의 길이가 짝수인 'qwer'의 경우 w부터 r전까지의 글자를 반환하므로,
가운데 두 글자인 we를 반환합니다.

0개의 댓글