상세 컨텐츠

본문 제목

[Leet Code] 1-bit and 2-bit Characters (python3)

PROGRAMMING/Algorithm

by koharin 2020. 3. 25. 20:21

본문

728x90
반응형

 

1. len(bits) == 1이면 항상 0일 것이므로 return true

 

2. i = 0부터 시작해서 len(bits)-1보다 작을 때까지 반복

1) bits[i] == 1이면 항상 2bit일 것. 따라서 다음을 건너뛰도록 함. i += 2

2) 그렇지 않으면 항상 1bit일 것 (위의 경우에서는 다음을 건너뛰었으므로 10인 경우도 위에 포함되어서)

따라서 다음으로 감 i += 1

 

이 과정을 반복해서 len(bits)-1에 다다른다면 마지막 인덱스가 1bit인 것이고,

len(bits)-1보다 커진다면 2bit인 것이다.

 

이것을 이용해서 i 값과 len(bits)-1 값이 같은지 비교하는 것으로 return 한다면

같으면 bool값으로 1이 리턴되어서 true가 출력되고,

다르면 bool값으로 0이 리턴되어서 false가 출력된다.

 

 

파이썬에서 ->는 공부한 적이 없는데, function에 -> bool이라고 있으면 리턴타입이 bool이라는 것이다.

그리고 bits: List[int]는 bits가 int형의 배열이라는 의미이다.

 

class Solution:
    def isOneBitCharacter(self, bits: List[int]) -> bool:
        if(len(bits) == 1): return True
        else:
            i = 0
            while(i < len(bits)-1):
                if(bits[i] == 1):
                    i += 2
                else:
                    i += 1
            return i == len(bits)-1

 

728x90
반응형

관련글 더보기