끄적끄적 코딩일지

[Programmers]이상한 문자 만들기(난이도:★★★) 본문

알고리즘

[Programmers]이상한 문자 만들기(난이도:★★★)

BaekGyuHyeon 2022. 5. 16. 19:15

https://programmers.co.kr/learn/courses/30/lessons/12930

 

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

문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을

programmers.co.kr

class Solution {
    public String solution(String s) {
        return switchCase(s);
    }
    public String switchCase(String s){
        char[] arry =s.toCharArray();
        boolean upper = true;
        for(int i = 0 ;i< arry.length;i++){
        	// 공백시 upper = true으로 초기화
            if(arry[i] == ' '){
                upper = true;
                continue;
            }
            // ascii code 사용
            if(arry[i] > 96 && upper){
                arry[i] = (char)(arry[i] - 32);
                upper = !upper;
            }else if(arry[i] > 96 && !upper){
                upper = !upper;
            }else if(arry[i] < 96 && !upper){
                arry[i] = (char)(arry[i] + 32);
                upper = !upper;
            }else {
                upper = ! upper;
            }
        }
        return new String(arry);
    }
}