본문 바로가기
프로그래머스/[프로그래머스 - JAVA] Lv.1

[프로그래머스 - JAVA] 이상한 문자 만들기

by 코딩하는 흰둥이 2023. 3. 30.
반응형


  • 내 풀이
class Solution {
    public String solution(String s) {
        String answer = "";
        
        for(int i = 0; i < s.length(); i++){
            if(!" ".equals(String.valueOf(s.charAt(i))) && i % 2 == 0){
                answer += String.valueOf(s.charAt(i)).toUpperCase();
            }else if (!" ".equals(String.valueOf(s.charAt(i))) && i % 2 == 1){
                answer += String.valueOf(s.charAt(i)).toLowerCase();
            }else if(" ".equals(String.valueOf(s.charAt(i)))){
                answer += " ";
            }
        }
        
        return answer;
    }
}

또 제한 사항 제대로 읽지 않고 푼....

 

class Solution {
    public String solution(String s) {
        String answer = "";
        
        // split(regex , limit) limit에 음수를 주어 공백을 유지함
        String[] check = s.split(" ",-1);

        for (int i = 0; i < check.length; i++) {
            // 단어 시작전 공백 추가
            if (i != 0){
                answer += " ";
            }

            for (int j = 0; j < check[i].length(); j++) {
                if(j % 2 == 0 ){
                    answer += String.valueOf(check[i].charAt(j)).toUpperCase();
                }else if(j % 2 == 1) {
                    answer += String.valueOf(check[i].charAt(j)).toLowerCase();
                }
            }
        }
        
        return answer;
    }
}

 

 

 

  • 다른 사람 풀이
class Solution {
  public String solution(String s) {
        char[] chars = s.toCharArray();
        int idx = 0;

        for (int i = 0; i < chars.length; i++) {
            if (chars[i] == ' ')
                idx = 0;
            else
                chars[i] = (idx++ % 2 == 0 ? Character.toUpperCase(chars[i]) : Character.toLowerCase(chars[i]));
        }

        return String.valueOf(chars);
  }
}

댓글