본문 바로가기
코딩 테스트/프로그래머스

이진 변환 반복하기

by ornni 2024. 4. 14.
728x90
반응형

첫번째 코드

 

해당 문제를 보고 문자열을 다루는 방법과 while, for, if문을 잘 사용하면 되겠다 라는 아이디어로 출발했다.

근데 문제는 이진 변환을 하는 방법이었다;;; 방법을 몰라서..

그래서 GPT에게 물어본 결과 bin()함수라는 이진 변환을 바로 해주는 코드가 있었다.

 

bin()함수의 결과를 확인하기 위해 디버깅을 사용했는데, 해당 함수는 일반 문자열과 다르게 앞에 "0b"라는 문자열이 추가되어 이진 변환이 되었음을 표현하고 있었다.

그렇기 때문에 '1'이 될 때까지 문자열을 반복하기 위해서는 앞에 "0b"문자열을 제거해야 하므로 [2:]가 필요한 것을 알았다

 

def solution(s):
    answer = []
    
    zero = 0
    count = 0
    
    while s != '1':
        one_index = []
        for i in range(len(s)):
            if s[i] == '0':
                zero += 1
            else:
                one_index.append(s[i])
                
        no_zero = "".join(one_index)
        len_s = len(no_zero)
        s = bin(len_s)[2:]
        count += 1

    answer.append(count)
    answer.append(zero)
    
    return answer

 

통과! 호홓ㅎ


링크

https://github.com/ornni/programmers/tree/main/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4/2/70129.%E2%80%85%EC%9D%B4%EC%A7%84%E2%80%85%EB%B3%80%ED%99%98%E2%80%85%EB%B0%98%EB%B3%B5%ED%95%98%EA%B8%B0

 

programmers/프로그래머스/2/70129. 이진 변환 반복하기 at main · ornni/programmers

repository for recording Programmers Algorithm problem solving - ornni/programmers

github.com

 

반응형

'코딩 테스트 > 프로그래머스' 카테고리의 다른 글

제일 작은 수 제거하기  (0) 2024.04.16
자릿수 더하기  (1) 2024.04.15
2016년  (1) 2024.04.13
가운데 글자 가져오기  (2) 2024.04.12
K번째 수  (0) 2024.04.11