본문 바로가기
Algorithm

[LeetCode] Number of Changing Keys

by daewooki 2024. 2. 24.
반응형

https://leetcode.com/problems/number-of-changing-keys/

 

Number of Changing Keys - LeetCode

Can you solve this real interview question? Number of Changing Keys - You are given a 0-indexed string s typed by a user. Changing a key is defined as using a key different from the last used key. For example, s = "ab" has a change of a key while s = "bBBb

leetcode.com

 

 

문자열을 입력받는다.  "abAaAa" 와 같이 입력을 받고 키가 얼마나 변경이 되는지에 대한 카운팅을 하는 문제이다.

 

여기서 조건이 하나 있는데, Shift 나 Caps Lock은 키의 횟수에 카운팅이 되지 않아야한다.

 

그러면 어떠한 입력이 들어오던 모두 lowercase 로 변경한 후에 문자열을 체크하면서 처음 문자부터 N번 돌면서 변경이 되는 부분에서 카운팅을 하면 된다. 

 

매우 쉬운 문제라고 볼 수 있다. 

 

Solution

1
2
3
4
5
6
7
8
9
10
11
12
class Solution:
    def countKeyChanges(self, s: str-> int:
        s = s.lower()
        answer = 0
        # 처음 문자를 가지고 
        origin = s[0]
        # 두번째 문자부터
        for i in s[1:]:
            if i!=origin:
                answer += 1
                origin = i
        return answer
cs

 

제출 결과

 

속도가 느린편에 속한데, 빠른 사람들의 코드를 보면 크게 로직의 차이는 없다. 제일 빠른 사람의 코드이다.

1
2
3
4
5
6
7
8
9
 
class Solution:
    def countKeyChanges(self, s: str-> int:
        s = s.lower()
        count = 0
        for i in range(1,len(s)):
            if s[i] != s[i-1]:
                count += 1
        return count
cs

 

반응형

'Algorithm' 카테고리의 다른 글

[LeetCode] 3042. Count Prefix and Suffix Pairs  (0) 2024.02.23
DNA Sequence Alignment (Local Alignment)  (0) 2021.06.18

댓글