이진 변환 반복하기

최진훈·2022년 4월 12일
0

programmers

목록 보기
63/73


오랜만에 만난 보자마자 금방 풀 수 있을 것 같다는 생각이 드는 문제이다. 결과가 1이어야 하니까 1이 나올때까지 반복문을 돌려주면 될 것이고, 입력값이 String형태이기 때문에 replace함수를 이용해서 0을 없애고 그때 사라진 0의 갯수를 구하는식으로 짜보면 될 것같다. 문제는 2진수로 변환하는 과정인데 실제로 2진수를 구하는방법처럼 2로 계속 나누는 식은 너무 비효율적일 것 같고 좋은 방법이 있는지 좀 찾아봐야겠다.

source : https://codedragon.tistory.com/7995

어메이징.... 너무 쉬운 방법이 있다.

  1. answer에 담길 변환횟수, 0의갯수를 저장할 변수를 선언한다.
  2. while문으로 결과가 1이 나올때까지 반복문을 만든다.
  3. 한 사이클마다 count를 1씩 올려주고 그때의 0의 갯수를 zero에 저장한다.
  4. replace를 이용하여 0을 ""(공백)으로 바꿔주고 그때의 길이만큼 toString(2)2진수로 바꿔준다.
  5. 위 과정이 반복되어 결과가 1이되면 반복문을 빠져나오게되고 그때의 countzero의 값을 순서대로 answer에 넣어준다.

레고레고


뭔가 조금 더 다듬을만한 방법이 있을 것 같은데 일단 이렇게 테스트를 해보자.


통과~!~!

profile
레고레고

0개의 댓글