첫번째 코드
해당 문제를 보고 문자열을 다루는 방법과 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
통과! 호홓ㅎ
링크
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 |