아이디어
프로젝트들을 진행하면서 생긴 변화는 '내장함수'의 활용이다.
직접 구현하는 것보다 덜 수고스럽고, 실제 구동 속도도 빠르다는 것이 장점이다. (아는 것이 힘이라는 거지...)
2진수와 10진수 간의 변환에는 다음의 내장 함수를 사용하면 간단하다.
bin()
int()
위 둘을 가장 많이 사용하고, 예외로 알아두면 좋은 함수는 다음과 같다.
hex()
oct()
각각 16진수, 8진수로 변환하는 함수다.
주의할 점은 이들을 구분하기 위해 접미어가 붙는다는 점인데, 슬라이싱으로 가볍게 편집해 주면 된다.
풀이
def solution(s):
zero_cnt = 0
progress_cnt = 0
while s != '1':
temp = ''
for i in s:
if i == '0':
zero_cnt += 1
else:
temp += i
s = bin(len(temp))[2:]
progress_cnt += 1
return [progress_cnt, zero_cnt]
개인적으로 while은 디버깅이 곤란한 경우가 많아 기피하는데, 지금처럼 상태가 명확하다면 그런 위험도 없다.
'학습 노트 > 알고리즘 (Python)' 카테고리의 다른 글
99클럽 - 모음사전 (0) | 2024.04.13 |
---|---|
99클럽 - 기능개발, 대충 만든 자판 (0) | 2024.04.12 |
Stack #2 (0) | 2022.06.23 |
Stack #1 (0) | 2022.06.04 |
선형 데이터 구조와 탐색 (0) | 2022.05.03 |