728x90
반응형
안녕하세요. delay100 입니다.
미들러 문제. JadenCase 문자열 만들기
https://school.programmers.co.kr/learn/courses/30/lessons/12951
1. 실패 코드 - 연속된 공백 고려하지 않음
- 대문자 아스키코드 범위: A(65)~Z(90)
- 소문자 아스키코드 범위: a(97)~z(122)
- 그리고 문자열에 들어가는 값은 숫자, 소문자, 대문자가 유일함
- 연속된 공백이 나올 수 있음
위의 4가지 조건을 고려하면 쉽게 풀리는 문제였습니다. 실패 코드에서는 마지막 조건을 고려하지 않았었습니다.
import java.io.*;
import java.util.*;
class Solution {
public String solution(String s) {
boolean isBlank = true;
StringBuilder sb = new StringBuilder();
for(int i=0; i<s.length(); i++) {
char c = s.charAt(i);
if(isBlank) {
if(c>=97 && c<=122) {
sb.append(Character.toString(c-32));
} else {
sb.append(Character.toString(c));
}
isBlank = false;
} else {
isBlank = false;
if(c==' ') {
isBlank = true;
sb.append(Character.toString(c));
} else if(c>=65 && c<=90) { // 대문자인 경우
sb.append(Character.toString(c+32));
} else {
sb.append(Character.toString(c));
}
}
}
String answer = sb.toString();
return answer;
}
}
테스트2, 4, 11~14를 통과하지 못했습니다.
2. 성공 코드
// 공백 문자가 연속으로 나온 경우
if(c==' ') {
isBlank = true;
} else {
isBlank = false;
}
위의 코드에서 현재 문자가 공백인 경우 처리할 때 조건을 한개 더 추가해서 해결했습니다.
import java.io.*;
import java.util.*;
class Solution {
public String solution(String s) {
boolean isBlank = true;
StringBuilder sb = new StringBuilder();
for(int i=0; i<s.length(); i++) {
char c = s.charAt(i);
if(isBlank) {
if(c>=97 && c<=122) {
sb.append(Character.toString(c-32));
} else {
sb.append(Character.toString(c));
}
// 공백 문자가 연속으로 나온 경우
if(c==' ') {
isBlank = true;
} else {
isBlank = false;
}
} else {
isBlank = false;
if(c==' ') {
isBlank = true;
sb.append(Character.toString(c));
} else if(c>=65 && c<=90) { // 대문자인 경우
sb.append(Character.toString(c+32));
} else {
sb.append(Character.toString(c));
}
}
}
String answer = sb.toString();
return answer;
}
}
+ 비기너 문제
자릿수 더하기 (https://school.programmers.co.kr/learn/courses/30/lessons/12931)
+ 챌린저 문제
2개 이하로 다른 비트 (https://school.programmers.co.kr/learn/courses/30/lessons/77885)
봐주셔서 감사합니다. 피드백 환영합니다.
728x90
반응형
'항해99 > 99club1기TIL' 카테고리의 다른 글
[99club/TIL] 4주차 - 화요일 TIL(Today I Learned) (1) | 2024.04.16 |
---|---|
[99club/TIL] 4주차 - 월요일 TIL(Today I Learned) (0) | 2024.04.16 |
[99club/TIL] 3주차 - 토요일 TIL(Today I Learned) (0) | 2024.04.13 |
[99club/TIL] 3주차 - 금요일 TIL(Today I Learned) (0) | 2024.04.12 |
[99club/TIL] 3주차 - 목요일 TIL(Today I Learned) (0) | 2024.04.11 |