상세 컨텐츠

본문 제목

[Java] 가운데 글자 가져오기

코딩뿌시기(연습)

by thisnorm 2025. 1. 24. 15:06

본문

문제 설명

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

 

 

제한 사항

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

 

 

 

 

입출력 예

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

 


 

아이디어를 떠올려 보면 글자수는 1부터 세서 가지만 문자열은 0부터 센다.

그리고 내장함수 length() 로 문자열을 세게 되면 int 형으로 반환이 된다.

그러므로 midIndex 변수를 만들어서 s.length()/2를 한다면 2가 출력되게 되어

홀수형의 중앙값이 반환된다. 짝수는 midIndex를 기준으로 -1 값과 그 값을 출력하면 된다.

class Solution {
    public String solution(String s) {
        String answer = "";
        if(1 <= s.length() && s.length() <= 100){
            int midIndex = s.length() / 2;
            if(s.length() % 2 == 0){
                answer = s.charAt(midIndex - 1) + s.charAt(midIndex);
            }
            else{
                answer = s.charAt(s.length()/2);
            }
        }
        return answer;
    }
}

 

하지만 이렇게 하면 오류가 나왔다. 확인해보니 s.charAt 값은 문자열이 아닌 int 형을 반환하여서 그런것이었다.

그렇게 코드를 수정해보면

class Solution {
    public String solution(String s) {
        String answer = "";
        if(1 <= s.length() && s.length() <= 100){
            int midIndex = s.length() / 2;
            if(s.length() % 2 == 0){
                answer = String.valueOf(s.charAt(midIndex - 1)) + String.valueOf(s.charAt(midIndex));
            }
            else{
                answer = String.valueOf(s.charAt(s.length()/2));
            }
        }
        return answer;
    }
}

이렇게 된다.

 

 

관련글 더보기