프로그래머스/Lv. 1

[프로그래머스 코딩테스트] 가운데 글자 가져오기(Java)

Sigfriede 2023. 4. 8. 15:56

  문제 설명

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

 

  제한사항

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

 

  입출력 예

s return
"abcde" "c"
"qwer" "we"
class Solution {
    public String solution(String s) {
        String answer = "";
        String[] str = s.split("");
        if (s.length() % 2 != 0) {
            answer = str[s.length() / 2];
        } else {
            answer = str[s.length() / 2 - 1] + str[s.length() / 2];
        }
        return answer;
    }
}

  문자열 s를 문자별로 나눈 문자열 배열로 만들었습니다. 조건문을 통해 단어의 길이가 홀수와 짝수일 때의 경우를 구분하여 answer에 할당했습니다. 단어의 길이가 홀수일 때에는 s의 길이를 2로 나눴습니다. 배열의 인덱스는 0으로 시작하기 때문입니다. 만약 문자열의 길이가 5라면, 2로 나눴을 때 2.5가 되고 소수점 아래로는 버림되므로 2번 인덱스의 원소를 반환하게 되는 것입니다. 마찬가지로 짝수의 경우에도 문자열의 길이를 2로 나눈 인덱스의 원소를 반환합니다. 그러나 짝수의 경우에는 두 글자를 반환하면 된다고 했으므로 앞서 선택한 인덱스와 그 앞의 인덱스를 문자열 더하기로 같이 반환해주었습니다.

  제 풀이는 문자열의 길이를 기준으로 나눴지만, substring 메소드를 사용하여 범위를 자르는 풀이도 무방합니다.