1. 문제
2. 문제 해결 논리
1. 문제 이해
- 주어진 것
- String s // 임의의 문자열
- 문자열을 이루는 단어들
- 단어의 0번째 ~ 마지막까지 홀수 인덱스는 소문자
- 단어의 0번째 ~ 마지막까지 짝수 인덱스는 대문자
- 요구되는 것
- 주어진 문자열을 위의 제한 사항에 맞춰 변환 후 합친 문자열
2. 데이터 구조 결정
- StringBuilder, 반복문, 인덱스 사용
3. 알고리즘 설계
- StringBuilder를 이용한 문자열 수정
- 반복문에서 사용할 인덱스와 따로 움직이는 인덱스의 사용
- StringBuilder의 String 변환 및 반환
3. 코드 구현
class Solution {
public String solution(String s) {
StringBuilder sb = new StringBuilder();
//문자열을 이루는 단어 내에서만 움직이는 인덱스
int index = 0;
//문자열 s 내 문자를 반복문으로 하나씩 순회
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
//해당 문자가 "공백"이라면
if (c == ' ') {
//인덱스 0으로 초기화 및 공백을 StringBuilder에 추가
index = 0;
sb.append(' ');
//해당 문자가 "공백"이 아니라면
} else {
//해당 문자의 인덱스가 짝수라면
if (index % 2 == 0) {
sb.append(Character.toUpperCase(c));
//해당 문자의 인덱스가 홀수라면
}else{
sb.append(Character.toLowerCase(c));
}
//변환 및 append 작업이 끝나면 인덱스+1
index++;
}
}
//StringBuilder에서 String으로 변환
return sb.toString();
}
}
* Reference
https://school.programmers.co.kr/learn/courses/30/lessons/12930
반응형
'PS > Programmers' 카테고리의 다른 글
[level1, Arrays] 예산 (0) | 2023.03.25 |
---|---|
[level1, Character] 시저 암호 (1) | 2023.03.24 |
[level1, 진법] 3진법 뒤집기 (0) | 2023.03.21 |
[level1, Stack/Queue] 같은 숫자는 싫어 (0) | 2023.03.20 |
[level1, 유클리드 호제법] 최대공약수와 최소공배수 (0) | 2023.03.19 |