코딩테스트 연습 - 이상한 문자 만들기 | 프로그래머스 스쿨 (programmers.co.kr)
문제 설명
문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수, solution을 완성하세요.
제한 사항- 문자열 전체의 짝/홀수 인덱스가 아니라, 단어(공백을 기준)별로 짝/홀수 인덱스를 판단해야합니다.
- 첫 번째 글자는 0번째 인덱스로 보아 짝수번째 알파벳으로 처리해야 합니다.
- 주어진 문자열을 StringTokenizer를 사용하여 공백을 기준으로 분리
- while 루프를 이용하여 토큰이 남아있는 동안 반복
- 토큰이 공백인 경우: 그대로 answer에 추가
- 토큰이 공백이 아닌 경우: 문자열을 반복하여 문자 하나씩 꺼내면서 인덱스에 따라 대소문자로 변환하면서 추가
import java.util.*;
class Solution {
public String solution(String s) {
StringBuilder answer = new StringBuilder();
StringTokenizer st = new StringTokenizer(s, " ", true);
while (st.hasMoreTokens()) {
String token = st.nextToken();
if (token.equals(" ")) {
answer.append(" ");
continue;
}
int cnt = 0;
for (char c : token.toCharArray()) {
if (cnt % 2 == 0) {
answer.append(Character.toUpperCase(c));
} else {
answer.append(Character.toLowerCase(c));
}
cnt++;
}
}
return answer.toString();
}
}
'Programmers > Lv.2' 카테고리의 다른 글
[프로그래머스][Lv.2][Java][완전탐색] 카펫 (0) | 2023.05.04 |
---|---|
[프로그래머스][Lv.2][Java][Greedy] 구명보트 (0) | 2023.05.04 |
[프로그래머스][Lv.2][Java][Stack] 올바른 괄호 (0) | 2023.05.02 |
[프로그래머스][Lv.2][Java] 최솟값 만들기 (0) | 2023.05.02 |
[프로그래머스][Lv.2][Java] 최댓값과 최솟값 (0) | 2023.04.28 |