PCCP/프로그래머스

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

Life Log 2025. 5. 4. 01:06
반응형

문제 링크 👉 프로그래머스 - 이상한 문자 만들기


📝 1. 문제의 핵심 요약

주어진 문자열 s에서 각 단어의 짝수 번째 알파벳은 대문자, 홀수 번째 알파벳은 소문자로 변환해야 합니다. 여기서 짝/홀수는 문자열 전체 기준이 아니라, 단어별 기준입니다. 공백은 그대로 유지해야 합니다.

예시:

  • 입력 → "try hello world"
  • 출력 → "TrY HeLlO WoRlD"

⚠️ 2. 주의 사항

  • 단어는 공백(' ')으로 구분되며, 공백의 개수는 한 개 이상일 수 있습니다.
  • 각 단어에서 인덱스 0부터 짝/홀을 판단합니다.
  • 공백은 그대로 두고 처리합니다.

🛠️ 3. 슈도코드

1. 문자열을 문자 배열로 변환한다.
2. 문자 배열을 순회하며:
    a. 공백이면, 짝/홀수 인덱스 카운터를 0으로 초기화하고 공백을 결과에 추가한다.
    b. 공백이 아니면,
        i. 짝수 인덱스 → 대문자 변환
        ii. 홀수 인덱스 → 소문자 변환
        iii. 결과에 추가
        iv. 인덱스 카운터 증가
3. 결과 문자열을 반환한다.

💬 4. 주석 포함 코드

class Solution {
    public String solution(String s) {
        // 문자열 → 문자 배열로 변환
        char[] chars = s.toCharArray();

        int i = 0; // 단어별 인덱스
        StringBuilder sb = new StringBuilder();

        for(char c : chars){
            if(c == ' '){ 
                // 공백일 경우 인덱스 초기화
                i = 0;
                sb.append(c);
            }
            else{
                // 짝수 인덱스: 대문자, 홀수 인덱스: 소문자
                c = (i % 2 == 0) ? Character.toUpperCase(c) : Character.toLowerCase(c);
                sb.append(c);
                i++; // 단어 내 인덱스 증가
            }
        }

        return sb.toString();
    }
}
728x90
반응형