반응형
https://leetcode.com/problems/to-lower-case/
1. 2022.01.17 시도
소요시간: 5분
class Solution {
public String toLowerCase(String s) {
String newWord = "";
for (int i=0; i<s.length(); i++) {
if (s.charAt(i) >= 'A' && s.charAt(i) <= 'Z') {
newWord += (char)(s.charAt(i) + ('a' - 'A'));
} else {
newWord += s.charAt(i);
}
}
return newWord;
}
}
풀이 접근 과정
ascii값을 몰라서 System.out.println으로 숫자를 보고나서 그 이후에 대문자인 경우만 추려내어 소문자로 바꾸는 작업을 하였다.
느낀점
- 소문자가 더 ascii값이 크구나
- 'A'에 32를 더하면 'a'가 된다.
- 문자같이 제한적인 범위가 나올때는 한번쯤 선언해두고 풀어보는 방법도 좋다. 솔루션을 참고한 내용이지만 이 풀이가 더 간단하고 좋다는 얘기는 아니다. 한번쯤 이렇게도 고민해볼 수 있다는 식이다.
class Solution {
public String toLowerCase(String s) {
String upper = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
String lower = "abcdefghijklmnopqrstuvwxyz";
Map<Character, Character> upperMap = new HashMap<>();
for (int i=0; i<upper.length(); i++) {
upperMap.put(upper.charAt(i), lower.charAt(i));
}
StringBuilder sb = new StringBuilder();
for(int i=0; i<s.length(); i++) {
sb.append(upperMap.containsKey(s.charAt(i)) ? upperMap.get(s.charAt(i)) : s.charAt(i));
}
return sb.toString();
}
}
알고리즘 정리노트: .leetcode(알고리즘 문제풀이 접근)
반응형
'알고리즘 풀이' 카테고리의 다른 글
.leetcode(844. Backspace String Compare) (0) | 2022.01.22 |
---|---|
.leetcode(844. Backspace String Compare) (0) | 2022.01.22 |
.leetcode(704. Binary Search) (0) | 2022.01.17 |
.leetcode(112. Path Sum) (0) | 2022.01.16 |
.leetcode(7. Reverse Integer) (0) | 2022.01.16 |