프로그래머스 Lv.2 이진 변환 반복하기
1 2 3 4 5 6 7 8 9 10 11 | function solution(s) { let answer = [0, 0]; while(s.length > 1) { answer[0]++; answer[1] += (s.match(/0/g)||[]).length; s = s.replace(/0/g, '').length.toString(2); } return answer; } | cs |
배열
answer
에 [0, 0]을 할당해준다.
while
문을 사용하여s
의 길이가 1보다 크면 반복한다.반복문이 시작할 때
answer[0]
을 1 증가시킨다.
answer[1]
에s.match(/0/g)
또는 빈 배열의 길이를 더해준다. -> 0의 개수문자열
s
에서 0을 전부 제거한뒤 남은 문자열의 길이를 2진수로 바꿔준다.반복문 종료 후
answer
를 return 한다.