본문 바로가기

생각정리/코딩테스트

[JAVA][Level1]PROGRAMMERS 가운데 글자 가져오기

가운데 글자 가져오기


문제 설명

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

제한사항

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

입출력 예

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

입출력 예 설명

없음

주어진 문제

class Solution {
    public String solution(String s) {
        String answer = "";
        return answer;
    }
}

나의 문제풀이

class Solution {
    public String solution(String s) {
        String answer = "";
        
        if (s.length() % 2 == 0) { // 짝수 일경우
            char[] c = s.toCharArray(); // 문자열을 문자배열로 
            // 두글자를 반환하기 위해서 중간앞 문자와 중간문자를 가져온다.
            answer += String.valueOf(c[s.length()/2-1]);
            answer += String.valueOf(c[s.length()/2]);
        } else { // 홀수 일경우
            char[] c = s.toCharArray();
            // 중간 문자를 가져온다.
            answer = String.valueOf(c[s.length()/2]);
        }
        return answer;
    }
}
  • 문자열의 길이를 나머지연산자를 사용하여 짝수와 홀수로 구분한다.
  • 주어진 문자열을 문자배열로 변환한다.
  • 짝수일 경우 중간인덱스-1과 중간인덱스의 문자를 문자열로 변환하여 answer에 넣어준다.
  • 홀수일 경우 중간인덱스의 문자를 문자열로 변환하여 answer에 넣어준다.

문자열에서 일부분만 가져오기 위해서 문자배열로 변환하여 해당 문자만 가져오도록 하면서 형변환과 친해지기 위해 써보았다.
subString을 이용해서도 해볼 수 있을 거 같았는데 생각보다 문자배열로 사용한 게 빨리 동작을 하여 나중에 차차 테스트를 해보면서 비교를 해봐야겠다.

 

 

문제 출처 - https://school.programmers.co.kr/learn/courses/30/lessons/12903