프로그래머스

[프로그래머스] 다음 큰 숫자(브루트포스)

조주똥 2020. 9. 4. 23:01

#문제링크 : programmers.co.kr/learn/courses/30/lessons/12911

<전략>

1. N보다 큰 숫자 중, 이진수로 바꿨을 때, 1의 갯수가 같은 숫자 중 제일 작은 수를 찾는 문제.

2. N의 1의 갯수를 세어 준 후, N보다 큰 수부터 숫자를 증가시켜가며, 1의 갯수를 세어준다.

3. 1의 갯수가 같다면 바로 그 숫자가 정답.

4. 만약, N이 전부 1로만 이루어져 있다면, 10111...1 이런 숫자가 N보다 크면서 1의갯수가 같은 숫자 중 가장 작은 수일 것이다. 예를들어, N = 1111이라면, 답은 10111이 된다. 

5. N보다 큰 숫자부터 위의 조건을 만족하는 숫자까지만 탐색하면 되므로 브루트포스로 완전탐색해가면서 조건이 맞으면 종료한다.

Code