개발하는 고양이 오이

21. [JAVA] 프로그래머스 코딩테스트 연습 Level.1 - 이상한 문자 만들기 / 4,5,8,9,11번 실패 해결 본문

코딩테스트 - JAVA/프로그래머스 Programmers

21. [JAVA] 프로그래머스 코딩테스트 연습 Level.1 - 이상한 문자 만들기 / 4,5,8,9,11번 실패 해결

Cucum 2022. 5. 2. 13:14

https://programmers.co.kr/learn/challenges

 

코딩테스트 연습

기초부터 차근차근, 직접 코드를 작성해 보세요.

programmers.co.kr

 

프로그래머스 코딩테스트 연습 Level.1 - 이상한 문자 만들기



풀이

class Solution {
    public String solution(String s) {
        String answer = "";
        
        // 입력된 문자를 " " 띄어쓰기 기준으로 자르기
        String[] world = s.split(" ", -1);
        
        for(int i = 0; i < world.length; i++) {
            for (int j = 0; j < world[i].length(); j++) {
                if (j % 2 == 0) {  
                    answer += world[i].substring(j, j + 1).toUpperCase();
                } else {
                    answer += world[i].substring(j, j + 1).toLowerCase();
                }
            }
            if (i != world.length - 1) {
                answer += " ";    
            }
        }
        return answer;
    }
}

 

풀이 과정

① 공백을 기준으로 단어를 자르기 (split)

② 자른 각 단어의 길이로 i가 짝수이면 toUpperCase() / i가 홀수이면 toLowerCase()

 


(풀이 실패 과정)

class Solution {
    public String solution(String s) {
        String answer = "";
        
        // 입력된 문자를 " " 띄어쓰기 기준으로 자르기
        String[] world = s.split(" ");		// <- 여기가 문제
        
        for(int i = 0; i < world.length; i++) {
            for (int j = 0; j < world[i].length(); j++) {
                if (j % 2 == 0) {  
                    answer += world[i].substring(j, j + 1).toUpperCase();
                } else {
                    answer += world[i].substring(j, j + 1).toLowerCase();
                }
            }
            if (i != world.length - 1) {
                answer += " ";    
            }
        }
        return answer;
    }
}

이유 = 만약 문자열이 "abc " 인 것처럼 맨 뒤에 공백이 왔을 경우, -1이 없으면 "AbC"로 공백을 제외하고 출력하게 됨