📘문제 설명
문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수, solution을 완성하세요.
https://school.programmers.co.kr/learn/courses/30/lessons/12930?language=java
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
📌 제한조건
- 문자열 전체의 짝/홀수 인덱스가 아니라, 단어(공백을 기준)별로 짝/홀수 인덱스를 판단해야합니다.
- 첫 번째 글자는 0번째 인덱스로 보아 짝수번째 알파벳으로 처리해야 합니다.
💡 개념 설명
- 결과 생성 준비: 문자열을 효율적으로 조합하기 위해 StringBuilder 객체를 생성하고, 단어별 인덱스를 관리할 변수 idx를 0으로 초기화합니다.
- 문자열 순회: 입력받은 문자열 s를 split("")을 사용하여 한 글자씩 분리하거나 charAt()을 이용해 루프를 돌립니다.
- 공백 처리: 현재 문자가 공백인 경우 그대로 추가하고, 단어가 바뀌는 시점이므로 idx를 다시 0으로 초기화합니다.
- 대소문자 변환: 문자가 공백이 아닐 경우, idx가 짝수면 대문자(toUpperCase()), 홀수면 소문자(toLowerCase())로 변환하여 추가한 후 idx를 1 증가시킵니다.
- 결과 반환: 완성된 StringBuilder를 문자열로 변환하여 반환합니다.
📎 입출력 예시

📎 코드
public class Solution {
public String solution(String s) {
StringBuilder sb = new StringBuilder();
int idx = 0;
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
if (c == ' ') {
idx = 0;
sb.append(" ");
} else {
if (idx % 2 == 0) {
sb.append(Character.toUpperCase(c));
} else {
sb.append(Character.toLowerCase(c));
}
idx++;
}
}
return sb.toString();
}
public static void main(String[] args) {
Solution sol = new Solution();
// 테스트 케이스
String s = "try hello world";
String result = sol.solution(s);
// 예상 출력: "TrY HeLlO WoRlD"
System.out.println("입력: \"" + s + "\"");
System.out.println("결과: \"" + result + "\"");
}
}
📎 결과

'Java' 카테고리의 다른 글
| [Java] 코딩 33 - 프로그래머스 기출 문제(JAVA) / 크기가 작은 부분문자열 / Day 30 (0) | 2026.01.19 |
|---|---|
| [Java] 코딩 32 - 프로그래머스 기출 문제(JAVA) / 삼총사 / Day 29 (0) | 2026.01.19 |
| [Java] 코딩 30 - 프로그래머스 기출 문제(JAVA) / 3진법 뒤집기 / Day 27 (0) | 2025.12.12 |
| [Java] 코딩 29 - 프로그래머스 기출 문제(JAVA) / 최대공약수와 최소공배수 / Day 26 (0) | 2025.12.12 |
| [Java] 코딩 28 - 프로그래머스 기출 문제(JAVA) / 직사각형 별찍기 / Day 25 (0) | 2025.11.22 |