문제 설명
풀이 : Success
소스 코드
class Solution {
public String solution(String s) {
String[] d = s.split(" ", -1);
StringBuilder sb = new StringBuilder();
for (int i = 0; i < d.length; i++) {
for(int j = 0; j < d[i].length(); j++) {
if(j%2==0) {
if (d[i].charAt(j) >= 97) sb.append(String.valueOf(d[i].charAt(j)).toUpperCase());
else sb.append(d[i].charAt(j));
} else {
if (d[i].charAt(j) <= 90) sb.append(String.valueOf(d[i].charAt(j)).toLowerCase());
else sb.append(d[i].charAt(j));
}
}
if(i<d.length-1) sb.append(" ");
}
return sb.toString();
}
}
풀이 회고
우선 문자열을 공백을 기준으로 구분시켜 문자열 배열에 저장시켰는데, split 두번째 인자에 -1을 준 이유는 split 하면서 후행 빈 값이 삭제되는 것을 방지하기 위함이다. 예를 들어 입력된 문자열이 "try hello world "라면 후행 빈 값을 포함시켜서 출력시켜주어야 하는데, 두번째 인자에 -1을 주지 않고 split 시행 시 후행 빈 값이 삭제되기 때문이다.
결과값 출력을 위해 StringBuilder 객체를 사용했고 문자열별로 짝수 인덱스 문자가 소문자면 대문자로 변환시켜 append 시켰고, 홀수 인덱스 문자가 대문자면 소문자로 변환시켜 append 시키도록 했다. 하나의 문자열에 대해 변환 작업이 끝나면 공백을 추가해주도록 했다.(마지막 문자열 제외)
참고자료
- https://programmers.co.kr/learn/courses/30/lessons/12930
'Algorithm > Programmers' 카테고리의 다른 글
[프로그래머스] k진수에서 소수 개수 구하기 - Java (0) | 2022.02.18 |
---|---|
[프로그래머스] 신고 결과 받기 - Java (0) | 2022.02.16 |
[프로그래머스] K번째 수 - Java (0) | 2022.01.19 |
[프로그래머스] 모의고사 - Java (0) | 2022.01.19 |
[프로그래머스] 크레인 인형뽑기 게임 - Java (0) | 2022.01.19 |