본문 바로가기
카테고리 없음

[코딩테스트 연습] 이상한 문자 만들기

by 어떻게말이름이히힝 2024. 11. 17.

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

class Solution {
    public String solution(String s) {
        String answer = "";
        String[] an = s.split(" ");
        for(int j=0;j<an.length;j++){
            String str = an[j];
            for(int i=1;i<str.length()+1;i++){
                char ch = str.charAt(i-1);
                if(i%2==0){
                    answer += Character.toLowerCase(ch);
                }
                else {
                    answer += Character.toUpperCase(ch);
                }
            }
            if(j <an.length-1){
                answer += " ";
            }
        }
        return answer;
    }
}

 

처음에 이렇게 짰는데, 공백이 두개이거나 맨 앞에 공백이 있는걸 고려해야 된다더라..(보니까 나랑 비슷하게 split이용해서 짠 사람들 전부 같은 문제를 겪고 있었다.)

그러니까 공백이 두개가 되면 i로 설정해놓은 인덱스가 밀리고 an 배열에 저장되는게 달라서 그런다 했다.

계속 기억하자... 문자열 바꿀땐 StringBuilder 세번째 보는데 잘 인지가 안된다.

class Solution {
    public String solution(String s) {
        StringBuilder answer = new StringBuilder();
        int index=0;
        for(int i = 0; i<s.length();i++){
            char ch = s.charAt(i);
            if(ch==' ') {
                answer.append(ch);
                index=0;
            } else {
                if(index%2==0){
                    answer.append(Character.toUpperCase(ch));
                } else {
                    answer.append(Character.toLowerCase(ch));
                }
                index++;
            }
        }
        return answer.toString();
    }
}