반응형

안녕하세요 Henry 입니다
오늘은 이진 변환 반복하기 라는 문제를 풀어보았습니다.
프로그래머스에서 Level 별로 문제 난이도가 정해져 있는데,
이 문제는 Level 2에 속해있는 문제입니다.
먼저 이진 변환하는 방법을 알아야 하고,
숫자로 되어있는 문자열에서 0을 제거하는 방법을 알아야 합니다.
저는 문자열을 리스트로 변환해서 문제를 풀었는데,
또 0과 1만 이루어져 있기 때문에, 값을 모두 더하는 것을 1의 개수로 보는 것도 참 좋은 방법일 것 같습니다.
아래는 제가 푼 소스입니다.
코드 보시면서 도움이 되시길 바랍니다ㅎㅎ
from typing import List
def solution(s: str) -> List[int]:
zero_count_list = list()
while True:
ls = list(s)
zero_count_list.append(sorted(ls).index('1'))
value = len(ls) - zero_count_list[-1]
s: str = binary_tranform(value)
if s == '1':
break
return [len(zero_count_list), sum(zero_count_list)]
def binary_tranform(value: int) -> str:
remainder_string = ''
while True:
value, remainder = divmod(value, 2)
remainder_string = str(remainder) + remainder_string
if value == 0:
break
return remainder_string
아래는 문제 풀이 영상입니다.
https://youtu.be/YdVfhz1WSl4
- YouTube
www.youtube.com
반응형
'프로그래머스' 카테고리의 다른 글
프로그래머스 '올바른 괄호' 문제풀이(PYTHON) - Henry's Algorithm (0) | 2022.10.19 |
---|---|
프로그래머스 '자릿수 더하기' 문제풀이(PYTHON) - Henry's Algorithm (1) | 2022.10.18 |
프로그래머스 '짝수와 홀수' 문제풀이(PYTHON) - Henry's Algorithm (0) | 2022.10.14 |
프로그래머스 '두 수의 곱' 문제풀이(PYTHON) - Henry's Algorithm (0) | 2022.10.13 |
프로그래머스 '두 수의 차' 문제풀이(PYTHON) - Henry's Algorithm (0) | 2022.10.12 |