문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수, solution을 완성하세요.
해당 문제는 공백을 기준으로 단어가 나뉩니다.
그런데 그 공백이 몇개인지를 결과물로 동일하게 출력해주어야 합니다. 예를 들어
ex ) "abc de " -> "AbC De "
이런식으로 출력되어야 합니다.
1. 초기화
StringBuilder answer = new StringBuilder();
int num = 0;
answer는 StringBuilder로 초기화해주고
num은 공백 이후 나타날 단어의 index입니다.
2. 문자열의 문자가 공백인지 판단 후 answer에 삽입
char c = s.charAt(i);
if (c == ' ') {
answer.append(c);
num = 0;
}
3. 공백이 아니라면 단어의 index에 맞게 대소문자 변환
else {
if (num % 2 == 0) {
answer.append(Character.toUpperCase(c));
num++;
} else {
answer.append(Character.toLowerCase(c));
num++;
}
}
import java.util.*;
class Solution {
public String solution(String s) {
StringBuilder answer = new StringBuilder();
int num = 0;
for (int i=0; i<s.length(); i++) {
char c = s.charAt(i);
if (c == ' ') {
answer.append(c);
num = 0;
} else {
if (num % 2 == 0) {
answer.append(Character.toUpperCase(c));
num++;
} else {
answer.append(Character.toLowerCase(c));
num++;
}
}
}
return answer.toString();
}
}
반례가 떠오르지 않아 계속 다른 방향으로 풀다보니 생각보다 이 쉬운 문제에 시간을 너무 많이 썼습니다 ㅜㅜ
제 다른 코테 풀이는 git에서도 확인하실 수 있습니다
https://github.com/eonwy/programmers
GitHub - eonwy/programmers: 🔎 coding-test (programmers) 🔍
🔎 coding-test (programmers) 🔍. Contribute to eonwy/programmers development by creating an account on GitHub.
github.com
'🫧 코테 : CodingTest' 카테고리의 다른 글
[프로그래머스] Java : N개의 최소공배수 (1) | 2025.02.05 |
---|---|
[프로그래머스] Java : 기사단원의 무기 (0) | 2025.01.16 |
[프로그래머스] Java : 최대 공약수와 최소 공배수 구하기 (0) | 2025.01.14 |
[프로그래머스] Java : 배열 만들기2 (BFS 너비우선탐색 활용) (0) | 2025.01.04 |
[프로그래머스] Java : k의 개수 (0) | 2024.05.24 |