728x90
반응형
📜 문제 내용
🤔 과정
- 문자열 문제임을 알고 전부 char 형태로 바꾸어 아스키 코드를 활용해서 answer에 넣어야겠다고 판단했다.
- 아스키코드에서 'A' = 65 , 'a' = 97 , '0' = 48 임을 알고 있어서 코드에 적용했다.
✨ 최종 제출 답안
class Solution {
public String solution(String s) {
char[] arr = s.toCharArray();
// 맨 앞이 소문자면 대문자로 변경
if(arr[0] >= 'a' && arr[0] <= 'z'){
arr[0] -= 32;
}
for(int i=1;i<arr.length;i++){
// 앞글자가 공백이고 현재 글자가 소문자면 대문자로 변경
if(arr[i-1] == ' ' && arr[i] >= 'a' && arr[i] <= 'z'){
arr[i] -= 32;
}
// 앞글자가 공백이 아니고 현재 글자가 대문자면 소문자로 변경
if(arr[i-1] != ' ' && arr[i] >= 'A' && arr[i] <= 'Z'){
arr[i] += 32;
}
}
String answer = "";
for(int i=0;i<arr.length;i++){
answer += arr[i];
}
return answer;
}
}
- 빠르게 제출하고 나서 통과가 되고 보니, 시간이 조금 걸린 것 같아 다른 방법이 있나 찾아봤다. String의 toUpperCase와 toLowerCase를 활용하면 더 간략히 코드를 작성 가능하고, 더 빠르게 실행이 되는 것을 확인했다.
- 항상 문제를 볼 때마다 너무 빠르게 쳐내려고 하는 것 같아서 습관을 고쳐봐야겠다.
✍️ 재제출 답안
class Solution {
public String solution(String s) {
String answer = "";
String[] arr = s.toLowerCase().split("");
boolean check = true;
for(String one : arr){
answer += check ? one.toUpperCase() : one;
check = one.equals(" ") ? true : false;
}
return answer;
}
}
🔗 문제 링크
728x90
반응형