👀 문제
https://programmers.co.kr/learn/courses/30/lessons/12930
👊 도전
1. 설계
- 문자열 s를 문자로 쪼개어 배열에 저장한다.
- 공백이 나타나면 blank=0으로 초기화하여 단어별로 짝/홀수 인덱스를 판단하게 한다.
- 0과 짝수 인덱스에는 toUpperCase()를, 홀수에는 toLowerCase()를 이용한다.
2. 구현 (성공 코드)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
/**
*
* @author HEESOO
*
*/
class Solution {
public String solution(String s) {
String answer = "";
String[] array=s.split("");
int blank=0;
for(String str:array){
if(str.equals(" ")){
answer+=" ";
blank=0;
continue;
}
if(blank%2==0)
answer+=str.toUpperCase();
else
answer+=str.toLowerCase();
blank++;
}
return answer;
}
}
3. 결과
🤟 성공 🤟
4. 설명
- split()함수로 문자열을 하나씩 쪼개서 배열에 저장한다.
- 공백이 나오면 인덱스를 0으로 초기화한다.
- 공백 다음의 원소는 blank가 0이므로 첫 문자가 되고, 따라서 대문자로 바꾼다.
- 공백이 나올 때까지 blank를 카운트한다.
👏 해결 완료!
처음에는 charAt()함수로 문자를 뽑아서 계산했는데, 인덱스 관리가 헷갈려서 다른 사람 코드를 참고했다. 이 문제는 split()를 쓰는게 더 간단하고 좋은 것 같다.