6월 26일에 올렸던 <이상한 문자 만들기> 문제가 완벽하게 통과되지 않았고, 그 대안책으로 LowerCase를 사용하여 풀어보겠다고 생각하였다.
class Solution {
public String solution(String s) {
StringBuffer sb = new StringBuffer();
String answer = "";
String[] array = s.split(" ");
for(int i=0; i<array.length; i++){
String[] array2 = array[i].split("");
for(int j =0; j<array2.length; j++){
if(j%2==0){
sb.append(array2[j].toUpperCase());
}
else{
sb.append(array2[j].toLowerCase());
}
}
sb.append(" ");
}
return sb.toString();
}
}
전보다는 점수가 훨씬 높았지만, 100점은 절대로 나오지 않았다. 아마 문제가 공백이 여러개 일 수 있다는 것인거 같은데,, 그걸 어떻게 처리해야할지 한번 더 고민해봐야겠다.
정답코드)
class Solution {
public String solution(String s) {
String answer = "";
int idx = 0;
String[] strArr = s.split("");
for(int i=0; i<strArr.length; i++) {
if((" ").equals(strArr[i])) idx = 0;
else {
if(idx%2==0) {
idx++;
strArr[i] = strArr[i].toUpperCase();
}else {
idx++;
strArr[i] = strArr[i].toLowerCase();
}
}
answer += strArr[i];
}
return answer;
}
}
정답과 비교하였을 때, 나의 실수는 문자열을 먼저 ""로 나누지 않은 것이다.
""로 먼저 나누어야, 여러 공백을 만났을 때, 인덱스 값을 초기화하여 그냥 공백처리를 할 수 있기 때문이다.
디테일한 부분까지 조금 더 생각할 수 있는 사고력이 필요할 것 같다 .
'코딩테스트 연습(with java) > 프로그래머스' 카테고리의 다른 글
프로그래머스<내적> (0) | 2022.07.26 |
---|---|
프로그래머스<예산> (0) | 2022.07.25 |
프로그래머스<부족한 금액 계산하기> (수정) (0) | 2022.07.22 |
프로그래머스<소수 만들기> (0) | 2022.07.19 |
프로그래머스<두 개 뽑아서 더하기 (0) | 2022.07.17 |