3. 가운데 글자 가져오기

김영민·2022년 1월 27일
0

문제📃

1. 문제 설명

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

2. 제한 조건

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

3. 입출력 예

sreturn
"abcde""c"
"qwer""we"

풀이

나의 정답👨‍💻

public class CenterWord {

    //문자열 s를 매개변수로 받고, 문자열을 리턴값으로 돌려주는 메소드 생성
    public String solution1(String s) {
    
        // 변수 answer값을 문자열로 선언
        String answer = "";
        
        // 문자 s의 글자수를 나타내주는 변수를 정수로 선언
        int stringLength = s.length();
        
        // 문자 s의 글자수가 홀수라면
        if (stringLength % 2 == 1) {       
            // .substring(int a, int b)
            // : a의 다음 번째 글자부터 b 번째 글짜까지만 보여준다.
            
            // "문자 s의 글자수를 2로 나눈 값의 다음번째 글자부터
            // 2로 나눈 값의 다음번째 글자까지" 
            // (소수점 .5가 나와도 글자수는 정수이기 때문에 소수점이하는 사라진다)
            // 즉, 가운데 글자를 보여준다.
            answer = s.substring(stringLength / 2, stringLength / 2 + 1);
            
            // 문자 s의 글자수가 짝수라면
            } else {
                // "문자 s의 글자수를 2로 나눈 값의 같은 번째 글자부터 
                // 2로 나눈 값의 다음 번째 글자까지" 
                // 즉, 가운데 두 글자를 나타내준다.
                answer = s.substring(stringLength / 2 - 1, stringLength / 2 + 1);
            }
        return answer;
        }

심화 정답🏆

    public String solution2(String s) {
        // 아래 한 줄의 식이 글자수가 홀수일 때는 가운데 글자를 결과값으로 주고,
        // 짝수일 때는 가운데 두 글자를 결과값으로 주는 것을 모두 표현해준다.
        return s.substring((s.length() - 1) / 2, s.length() / 2 + 1);

    }

테스트용 코드🎯

    public static void main(String[] args) {
        CenterWord centerword = new CenterWord();
		
        System.out.println(centerword.solution1("abcde")); // "c" 출력
        System.out.println(centerword.solution1("qwer")); // "we" 출력
		
        System.out.println(centerword.solution2("abcde")); // "c" 출력
        System.out.println(centerword.solution2("qwer")); // "we" 출력
    }
}
profile
Macro Developer

0개의 댓글