728x90
https://school.programmers.co.kr/learn/courses/30/lessons/70129
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
def solution(s):
global cnt_0 # 0제거 카운트
global cnt_binary #이진화 카운트
global binary_array
binary_array = []
array = []
if s == "1":
return
for i in s:
if i == "0": # 원소가 0일때
cnt_0 +=1
else: # 원소가 1일때
array.append("1")
binary(len("".join(array))) # 0모두 제거 후 문자열길이를 이진화
cnt_binary += 1
solution("".join(binary_array))
return [cnt_binary, cnt_0]
def binary(b):
#binary가 1,0이면 값추가
if b ==1 or b==0:
binary_array.append(str(b))
else:
binary(b//2)
binary_array.append(str(b%2))
cnt_0 = 0 # 0제거 카운트
cnt_binary = 0 #이진화 카운트
|
cs |
풀이: 이진화를 하기위해 새로운 함수를 만들었다. 다른 사람들의 풀이가 궁금했다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
def solution(x):
answer = []
cnt = 0
zero = 0
while True:
if x == '1':
break
zero = zero + x.count("0")
x = x.replace("0", "")
x = bin(len(x))[2:]
cnt = cnt + 1
answer = [cnt, zero]
return answer
|
cs |
bin이라는 이진화 함수와 0을 세고 지우기 위해 count와 replace함수를 썼다는 게 신기했다.
count함수와 replace함수에 대한 방법을 배워야겠다.
728x90
'코딩테스트 > 구현' 카테고리의 다른 글
KMP 알고리즘 (0) | 2024.03.26 |
---|---|
[python] Lv.2 프로그래머스: 다리를 지나는 트럭 (0) | 2023.03.08 |
[python] Lv.2 프로그래머스: 최솟값만들기 (0) | 2023.03.08 |
[python] Lv.2 프로그래머스: 올바른 괄호 (0) | 2023.03.08 |
[python] Lv.2 프로그래머스: JadenCase 문자열 만들기 (0) | 2023.03.07 |
댓글