PROGRAMMERS/연습문제
PROGRAMMERES Level 1 연습문제 이상한 문자 만들기 (JAVA 자바)
c0mmedes
2022. 8. 25. 17:14
import java.util.*;
class Solution {
public String solution(String s) {
String answer = "";
String arr[] = s.split(" ", -1);
for(int i=0; i<arr.length; i++){
for(int j=0; j<arr[i].length(); j++){
if(j==0 || j%2==0){
String a = Character.toString(arr[i].charAt(j));
a = a.toUpperCase();
answer += a;
} else {
String a = Character.toString(arr[i].charAt(j));
a = a.toLowerCase();
answer += a;
}
}
if(i==arr.length-1) continue;
answer += " ";
}
return answer;
}
}
다른 코드
class Solution {
public String solution(String s) {
String answer = "";
// split을 이용하여 쪼개서 배열에 넣는다.
String[] arr = s.split("");
// 인덱스 초기화
int idx = 0;
for(int i=0; i<arr.length; i++) {
// 공백일 경우는 인덱스를 다시 0으로
if(arr[i].equals(" ")) {
idx = 0;
// 인덱스가 짝수일 경우 대문자로 바꿔주고 인덱스++
} else if(idx % 2 == 0) {
arr[i] = arr[i].toUpperCase();
idx++;
// 인덱스가 홀수일 경우 소문자로 바꿔주고 인덱스++
} else if(idx % 2 != 0) {
arr[i] = arr[i].toLowerCase();
idx++;
}
// answer에 바꿔진 문자나 공백을 넣어줌
answer += arr[i];
}
return answer;
}
}
더 간결하게
class Solution {
public String solution(String s) {
String answer = "";
String[] arr = s.split("");
int idx = 0;
for(String str : arr) {
// answer에 idx가 짝수면 대문자로, 아니면 소문자로
answer += idx%2 == 0 ? str.toUpperCase() : str.toLowerCase();
// 공백일 경우 인덱스를 0으로 아니면 +1
idx = str.contains(" ") ? 0 : idx + 1;
}
return answer;
}
}