문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수, solution을 완성하세요.
예제:
Input:
s : "try hello world"
Output:
"TrY HeLlO WoRlD"
제한 조건:
- 문자열 전체의 짝/홀수 인덱스가 아니라, 단어(공백을 기준)별로 짝/홀수 인덱스를 판단해야합니다.
- 첫 번째 글자는 0번째 인덱스로 보아 짝수번째 알파벳으로 처리해야 합니다.
Solution #1
class Solution {
public String solution(String s) {
String[] array = s.split(" ", -1);
StringBuilder builder = new StringBuilder();
for (int i = 0; i < array.length; i++) {
builder.append(convertWord(array[i]));
if (i < array.length - 1) builder.append(" ");
}
return builder.toString();
}
private String convertWord(String str) {
String[] array = str.split("", -1);
System.out.println(array.length);
StringBuilder builder = new StringBuilder();
for (int i = 0; i < array.length; i++) {
builder.append((i % 2 == 0) ? array[i].toUpperCase() : array[i].toLowerCase());
}
return builder.toString();
}
}
Result #1
💡 String s를 배열로 만들고, for 반복문을 사용하여 문제를 정직하게 풀었다.
Solution #2
class Solution {
public String solution(String s) {
StringBuilder answer = new StringBuilder();
String[] array = s.split("");
int count = -1;
for (String str : array) {
count = str.equals(" ") ? -1 : count + 1;
answer.append((count % 2 == 0) ? str.toUpperCase() : str.toLowerCase());
}
return answer.toString();
}
}
Result #2
💡 " " 공백 문자가 나올 때, count 값을 초기화 시켜주고, 그 외 문자엔 count 값을 증가시킨다. 그럼 따로 공백문자를 기준으로 String 배열을 만들지 않아도 각 단어의 index 값을 알 수 있다.
More Algorithm!
👇👇
github.com/ggujangi/ggu.programmers
출처 : 프로그래머스
'프로그래머스 - JAVA > Level 1' 카테고리의 다른 글
[JAVA] 프로그래머스 Lv.1 : 시저 암호 (0) | 2021.04.03 |
---|---|
[JAVA] 프로그래머스 Lv.1 : 약수의 합 (0) | 2021.04.03 |
[JAVA] 프로그래머스 Lv.1 : 자릿수 더하기 (0) | 2021.04.03 |
[JAVA] 프로그래머스 Lv.1 : 자연수 뒤집어 배열로 만들기 (0) | 2021.04.02 |
[JAVA] 프로그래머스 Lv.1 : 정수 내림차순으로 배치하기 (0) | 2021.04.02 |