프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
문제

제출한 코드
class Solution {
public String solution(String s) {
char[] arr = s.toCharArray();
StringBuilder sb = new StringBuilder();
int index = 0;
for (char c : arr) {
if (c == ' ') {
sb.append(" ");
index = 0;
} else {
if (index % 2 == 0) sb.append(Character.toUpperCase(c));
else sb.append(Character.toLowerCase(c));
index++;
}
}
return sb.toString();
}
}
풀이
먼저 입력 받은 문자열 s 를 Char 배열로 바꿔주고, 변환된 문자열을 반환하기 위해 StringBuilder를 선언해주었다.
공백으로 나뉘어진 각 문자열에 대하여 index가 짝수일 경우에는 대문자로, 홀수일 경우에는 소문자로 치환해야 하므로 우선적으로 Char 배열 안에 있는 문자가 공백인지를 먼저 판단해주었다.
만약 공백일 경우 StringBuilder에 그대로 공백을 추가해주고, index는 0으로 설정해주었다.
공백이 아닐 경우 해당 index의 값이 짝수인지 홀수인지를 판단하여 문제에 맞게 치환하여 StringBuilder에 추가해준 후 완성된 문자열을 반환해주었다.
처음에는 아래와 같은 코드로 제출했었다.
class Solution {
public String solution(String s) {
String[] arr = s.split(" ");
StringBuilder sb = new StringBuilder();
for (String val : arr) {
String[] str = val.split("");
for (int i = 0; i < str.length; i++) {
if (i % 2 == 0)
sb.append(str[i].toUpperCase());
else
sb.append(str[i].toLowerCase());
}
sb.append(" ");
}
return sb.toString().trim();
}
}
Default로 추가되어 있던 테스트 케이스는 통과했었지만, 위와 같이 작성하면 공백 처리가 제대로 처리되지 않아, 다른 테스트 케이스틀에는 실패가 떴었다. 앞으로는 문제를 잘 읽고 더욱 폭 넓게 생각해야겠다.
'프로그래머스' 카테고리의 다른 글
| [프로그래머스] 81301번 - 숫자 문자열과 영단어 [Java] (0) | 2026.05.11 |
|---|---|
| [프로그래머스] 12926번 - 시저 암호 [Java] (0) | 2026.05.08 |
| [프로그래머스] 68935번 - 3진법 뒤집기 [Java] (0) | 2026.04.30 |
| [프로그래머스] 12950번 - 행렬의 덧셈 [Java] (0) | 2026.04.16 |
| [프로그래머스] 12918번 - 문자열 다루기 기본 [Java] (0) | 2026.04.15 |