LeetCode는 프로그래밍 문제를 풀며 코딩 실력을 향상할 수 있는 온라인 플랫폼입니다. 다양한 알고리즘 및 데이터 구조 문제를 제공하며, 면접 대비에 유용합니다. 해당 문제는, LeetCode Problems에서 볼 수 있는 난이도 '쉬움 (Easy)' 단계인 "To Lower Case" 문제입니다.
--> https://leetcode.com/problems/to-lower-case/description/
문제 :
Given a string s, return the string after replacing every uppercase letter with the same lowercase letter.
Example 1 :
Input : s = "Hello"
Output : "hello"
Example 2 :
Input : s = "here"
Output : "here"
Example 3 :
Input : s = "LOVELY"
Output : "lovely"
Constraints:
- 1 <= s.length <= 100
- s consists of printable ASCII characters.
이 문제는 주어진 문자열 s에서 모든 대문자를 소문자로 변환한 문자열을 반환하도록 만드는 문제입니다. 제 코드는 딱히 효율적이진 못했지만, 그래도 보여드리고 설명해 드리겠습니다 :
1. 재이의 코드 :
class Solution {
public String toLowerCase(String s) {
String lowerCased = "";
for (int i = 0; i < s.length(); i++) {
if (s.charAt(i) >= 'A' && s.charAt(i) <= 'Z') {
lowerCased = lowerCased + (char) (s.charAt(i) + 32);
} else {
lowerCased += s.charAt(i);
}
}
return lowerCased;
}
}
- 우선, 소문자화된 문자열을 저장할 lowerCased 변수를 초기화합니다. 그리고 반복문에서 s의 각 문자를 순회합니다. 후에, 현재 문자가 대문자인지 확인합니다. 만일 대문자이면, ASCII값을 이용하여 소문자로 변환하고 그것을 lowerCased에 추가합니다. 대문자 A의 ASCII 값은 65이고, 소문자 a의 ASCII 값은 97인 것을 상기시켜 드리겠습니다. (32 차이 나죠). 그럼 만약 현재 문자가 대문자가 아닌 경우에는 변환 없이 그래도 lowerCased에 추가합니다. 그러고 리턴하면 끝. 시간 복잡도는 O(n)가 되겠습니다.
하지만, 자바에는 치트키가 있습니다. 이 모든 코드들을 한 방에 해결해 주는 메소드가 존재하죠 :
2. 치트키 코드 :
class Solution {
public String toLowerCase(String s) {
return s.toLowerCase();
}
}
시간 복잡도는 O(1) 이며, 이게 끝입니다.
'LeetCode' 카테고리의 다른 글
[LeetCode] - 283. Move Zeroes (1) | 2024.07.22 |
---|---|
[LeetCode] - 412. Fizz Buzz (0) | 2024.07.22 |
[LeetCode] - 2235. Add Two Integers (0) | 2024.07.22 |
[LeetCode] - 977. Squares of a Sorted Array (0) | 2024.07.22 |
[LeetCode] - 461. Hamming Distance (0) | 2024.07.22 |