반응형
https://programmers.co.kr/learn/courses/30/lessons/12930?language=java
내 풀이
class Solution {
public String solution(String s) {
String answer = "";
boolean isOdd = false; // 홀수번째인가
for (int i = 0; i < s.length(); ++i) {
char ch = s.charAt(i);
if (ch == ' ') { // 공백
answer += " ";
isOdd = false;
} else if (!isOdd) { // 0이나 짝수번째
answer += Character.toUpperCase(ch);
isOdd = true;
} else { // 홀수번째
answer += Character.toLowerCase(ch);
isOdd = false;
}
}
return answer;
}
}
처음 작성했던 코드
이 코드의 문제점은 문자열의 마지막이 띄어쓰기인 경우 못 골라낸다는 것이다. 근데 여러 테스트케이스를 통과를 못해서, 다른 예외가 있는지는 사실 잘 모르겠다.
다른 풀이
class Solution {
public String solution(String s) {
String answer = "";
int cnt = 0;
String[] array = s.split("");
for(String ss : array) {
cnt = ss.contains(" ") ? 0 : cnt + 1;
answer += cnt%2 == 0 ? ss.toLowerCase() : ss.toUpperCase();
}
return answer;
}
}
- 나는 boolean으로 했는데, int 로 공백을 처리하고 삼항연산자를 썼다는 것이 흥미로웠다. 삼항연산자 사용하는게 좀 익숙해졌다 생각했는데 생각보다 코딩할 때 잘 안쓰게 되는 것 같다.
- 그 외 다른 풀이로 그냥 처음부터 다 대문자로 바꿔놓고 소문자로만 바꾸는 풀이도 있었다. 바로 앞 문자가 대문자라면 소문자로 만드는 방법이었는데, 이 방법도 괜찮은 것 같다.
반응형
'코딩테스트 연습 > JAVA' 카테고리의 다른 글
[JAVA/알고리즘] 다트게임 (0) | 2022.03.14 |
---|---|
[JAVA/알고리즘] 문자열 내림차순으로 배치하기 (0) | 2022.03.13 |
[JAVA/알고리즘] 완주하지 못한 선수 (0) | 2022.03.11 |
[TroubleShooting] 해쉬맵(HashMap)에서 순서가 바뀌는 문제 (0) | 2022.03.10 |
[JAVA/알고리즘] 나머지가 1이 되는 수 찾기 (0) | 2022.03.10 |