728x90
반응형
- 이상한 문자 만들기
문제 설명
입출력 예 설명
문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수, solution을 완성하세요.
제한 사항- 문자열 전체의 짝/홀수 인덱스가 아니라, 단어(공백을 기준)별로 짝/홀수 인덱스를 판단해야합니다.
- 첫 번째 글자는 0번째 인덱스로 보아 짝수번째 알파벳으로 처리해야 합니다.
s | return |
"try hello world" | "TrY HeLlO WoRlD" |
"try hello world"는 세 단어 "try", "hello", "world"로 구성되어 있습니다. 각 단어의 짝수번째 문자를 대문자로, 홀수번째 문자를 소문자로 바꾸면 "TrY", "HeLlO", "WoRlD"입니다. 따라서 "TrY HeLlO WoRlD" 를 리턴합니다.
class Solution {
public String solution(String s) {
String answer = "";
String [] arr=s.split(" ");
//try,hello,world
for(int i=0;i<arr.length;i++){
String[] str=arr[i].split("");
arr[i]="";
//t,r,y
for(int j=0;j<str.length;j++){
if(j%2==0){
str[j]=str[j].toUpperCase();
//T,r,Y
}
else{
str[j]=str[j].toLowerCase();
}
arr[i]+=str[j];
}
if(i==arr.length-1){
answer=answer.concat(arr[i]);
}
else{
answer=answer.concat(arr[i]+" ");
}
}
return answer;
}
}
-> 실패한 테스트 케이스가 존재한다.
-> 문제 설명에 각 단어는 하나 이상의 공백 문자로 구분되어있습니다.라고 되어있는데
-> 이 설명에는 끝에도 공백문자가 들어갈 수 있다는 말을 포함한다.
-> 따라서 끝에 공백문자가 오는 테스트케이스에서 실패한다.
-> 공백문자가 온다면, split(" ")을 이용할 경우 공백문자는 제외된다.
-> split(" ", -1)을 이용한다면 끝에 공백문자가 와도 공백문자를 인식한다.
class Solution {
public String solution(String s) {
String answer = "";
String [] arr=s.split(" ",-1);
//try,hello,world
for(int i=0;i<arr.length;i++){
String[] str=arr[i].split("");
arr[i]="";
//t,r,y
for(int j=0;j<str.length;j++){
if(j%2==0){
str[j]=str[j].toUpperCase();
//T,r,Y
}
else{
str[j]=str[j].toLowerCase();
}
arr[i]+=str[j];
}
if(i==arr.length-1){
answer=answer.concat(arr[i]);
}
else{
answer=answer.concat(arr[i]+" ");
}
}
return answer;
}
}
728x90
반응형
'Java > Java 알고리즘 프로그래머스' 카테고리의 다른 글
[프로그래머스-LEVEL 1] 17. 시저 암호 (0) | 2022.05.08 |
---|---|
[프로그래머스-LEVEL 1] 16. 약수의 합 (0) | 2022.05.08 |
[프로그래머스-LEVEL 1] 14. 자릿수 더하기 (0) | 2022.05.08 |
[프로그래머스-LEVEL 1] 13. 자연수 뒤집어 배열로 만들기 (0) | 2022.05.08 |
[프로그래머스-LEVEL 1] 12. 정수 내림차순으로 배치하기 (0) | 2022.05.08 |