본문 바로가기

Programmers

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

📌 문제

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

 

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

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

programmers.co.kr

 

📌 코드

package programmers;

public class Pro_220425 {
	//도움 코드
    public static void main(String[] args) {
        String str = "try hello";

        System.out.println(solution(str));
    }

    public static String solution(String str) {
        StringBuilder answer = new StringBuilder(); // 문자를 붙여서 출력하기 위해 StringBuilder 사용
        String[] text = str.split(""); // UpperCase, LowerCase 메소드 사용하기 위해 문자열을 split 하여 배열에 임시 저장
        int count = 0; // 제한사항에 문자열 전체 길이가 아닌 공백을 기준으로 단어 마다 인덱스 초기화 하려고 count 변수 생성

        for (int i = 0; i < str.length(); i++) { // 길이 만큼 반복
            if (text[i].equals(" ")) { 
                count = 0; // 공백이면 count 는 0 으로 초기화
            } else {
                if (count % 2 == 0) { // count 가 짝수면 해당 인덱스 번째 있는 문자열 값을
                    count++;
                    text[i] = text[i].toUpperCase(); // 대문자로 바꿔서 저장
                } else { // 그렇지 않으면 소문자로 바꿔서 해당 칸에 저장
                    count++;
                    text[i] = text[i].toLowerCase();
                }
            }
            answer.append(text[i]); // 빌더에 배열에 있는 값을 하나씩 저장
        }
        return answer.toString();
    }
}