https://programmers.co.kr/learn/courses/30/lessons/12930
방법 1 : 아스키 활용
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
27
28
29
30
31
|
class Solution {
public String solution(String s) {
StringBuilder sb = new StringBuilder();
int j = 0;
for (int i = 0; i < s.length(); i++) {
int iChar = s.charAt(i);
// ' '이면 인덱스 j 초기화
if (iChar == ' ') {
sb.append((char) iChar);
j = 0;
continue;
}
// 짝수번째, 소문자 -> 대문자
if (j % 2 == 0 && iChar >= 'a' && iChar <= 'z') {
iChar -= 32;
}
// 홀수번째, 대문자 ->
if (j % 2 != 0 && iChar >= 'A' && iChar <= 'Z') {
iChar += 32;
}
sb.append((char) iChar);
j++;
}
return sb.toString();
}
}
Colored by Color Scripter
|
방법 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
27
28
|
class Solution {
public String solution(String s) {
StringBuilder sb = new StringBuilder();
int j = 0;
for (int i = 0; i < s.length(); i++) {
int iChar = s.charAt(i);
if (iChar == ' ') {
sb.append((char) iChar);
j = 0;
continue;
}
// 짝수번째 -> 대문자, 홀수번째 -> 소문자
if (j % 2 == 0) {
sb.append(((char)iChar+"").toUpperCase());
} else {
sb.append(((char)iChar+"").toLowerCase());
}
j++;
}
return sb.toString();
}
}
Colored by Color Scripter
|
보기에는 방법 2가 더 깔끔하지만
속도는 방법 1이 훨씬 빠르다
'Algorithm > 프로그래머스' 카테고리의 다른 글
[프로그래머스]연습문제 : 자연수 뒤집어 배열로 만들기 (level 1) (0) | 2019.11.07 |
---|---|
[프로그래머스]연습문제 : 자릿수 더하기 (level 1) (0) | 2019.11.07 |
[프로그래머스]연습문제 : 약수의 합 (level 1) (0) | 2019.11.07 |
[프로그래머스]연습문제 : 시저 암호 (level 1) (0) | 2019.11.06 |
[프로그래머스]연습문제 : 평균 구하기 (level 1) (0) | 2019.11.06 |
댓글