[Lv.1] 이상한 문자 만들기

첫 번째 풀이

 public String solution(String s) throws Exception {

        String result = "";

        String[] splitedStrings = s.split("\\s");


        for (int k =0; k< splitedStrings.length; k++){
            System.out.println("splitedStrings = " + splitedStrings[k]);
        }

        System.out.println("splitedStrings = " + splitedStrings);

        for(int i = 0; i < splitedStrings.length; i++){
            for(int j = 0; j < splitedStrings[i].length(); j++){
                if(j % 2 == 0 || j == 0){
                    String string = String.valueOf(splitedStrings[i].charAt(j));
                    String upperCase = string.toUpperCase();
                    result += upperCase;
                }
                else if(j % 2 != 0){
                    String string = String.valueOf(splitedStrings[i].charAt(j));
                    String lowerCase = string.toLowerCase();
                    result += lowerCase;
                }

            }
            result += " ";

        }
        return result;

split.() 을 공백 별로 나누어 단어 당 하나의 인덱스에 담았지만 이럴경우 공백이 여러개 일 경우에 대한 반례에 대처하지 못했다.

수정 후 풀이

class Solution {
    public String solution(String s) {
     
     String result = "";

        int idx = 0;

        String[] splitedStrings = s.split("");

        for (int i = 0; i < splitedStrings.length; i++) {

            if (splitedStrings[i].equals(" ")) {
                idx = 0;
                
            } else if (idx % 2 == 0 || idx == 0) {
                splitedStrings[i] = splitedStrings[i].toUpperCase();
                idx++;

            } else if (idx % 2 != 0) {
                splitedStrings[i] = splitedStrings[i].toLowerCase();
                idx++;

            }
            result += splitedStrings[i];
        }

        return result;


    }
}

단어에 글자 하나씩 나눈 뒤 연산을 했다.

Last updated