우당탕탕 개발일지
프로그래머스 level 2 이진변환 반복하기 (Python 파이썬) 본문
💡문제 링크
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
💡문제 분석 요약
이진 변환
1. 모든 0을 제거
2. 문자열의 길이를 2진법으로 표현 후 문자열로 바꿈
이진 변화를 "1"이 될 때까지 계속 반복
이진 변환 횟수와 변환 과정에서 제거된 0의 개수를 배열에 담아 return하는 문제
💡알고리즘 설계
이진 변환 횟수와 변환 과정에서 제거된 0의 개수를 각각 cnt, z = 0, 0으로 초기화한다.
s가 "1"이 아닌동안 이진 변환을 반복한다.이진 변환을 반복하면서 cnt 변수를 1씩 증가시킨다.이진 변환을 반복하면서 0의 개수만큼 z 변수를 증가시킨다.
💡코드
def solution(s):
cnt, z = 0, 0
while s != "1":
cnt += 1
z += s.count("0")
s = "1" * s.count("1") # 0을 제거
print(s)
s = str(bin(len(s))[2:]) # 2진법 변환
return [cnt, z]
💡 오답 풀이
2. 문자열의 길이를 2진법으로 표현 후 문자열로 바꿈
인데
2. 문자열을 2진법으로 표현 후 문자열로 바꿈
로 착각해서 풀었다..
'알고리즘' 카테고리의 다른 글
[DFS/BFS] 프로그래머스 level 2 숫자 변환하기 (Python 파이썬) (0) | 2025.03.23 |
---|---|
[동적계획법] 프로그래머스 level 2 조이스틱 (Python 파이썬) (0) | 2025.03.18 |
프로그래머스 level 2 JadenCase 문자열 만들기 (Python 파이썬) (0) | 2025.03.12 |
[그리디] 프로그래머스 level 3 숫자게임 (Python 파이썬) (1) | 2024.10.18 |
[연습문제] 프로그래머스 level 3 최고의 집합 (Python 파이썬) (0) | 2024.10.17 |