문제 링크입니다 https://programmers.co.kr/learn/courses/30/lessons/12911
자연수 n이 주어졌을 때, n의 다음 큰 숫자는 다음과 같이 정의 합니다.
- 조건 1. n의 다음 큰 숫자는 n보다 큰 자연수 입니다.
- 조건 2. n의 다음 큰 숫자와 n은 2진수로 변환했을 때 1의 갯수가 같습니다.
- 조건 3. n의 다음 큰 숫자는 조건 1, 2를 만족하는 수 중 가장 작은 수 입니다.
자연수 n이 매개변수로 주어질 때, n의 다음 큰 숫자를 return 하는 함수를 완성하는 문제였습니다. 문제 풀이 절차는 다음과 같습니다.
[1] 주어진 자연수 n을 2진수로 변환했을 때 1의 갯수를 구합니다.
[2] 주어진 자연수 n을 1씩 늘려가며, 큰 수에 대해 2진수로 변환했을 때 1의 갯수가 같은지 확인합니다.
[3] n보다 큰 수이며 2진수로 변환했을 때 1의 갯수가 같은 수를 찾는 순간(조건 3. 가장 작은 수) 그 수가 정답입니다.
[소스코드]
'알고리즘 > Programmers' 카테고리의 다른 글
프로그래머스 LEVEL 2 : 가장 큰 수 (0) | 2020.04.06 |
---|---|
프로그래머스 LEVEL 2 : 타겟 넘버 (0) | 2020.04.05 |
프로그래머스 LEVEL 2 : N개의 최소공배수 (0) | 2020.04.04 |
프로그래머스 LEVEL 2 : 숫자의 표현 (0) | 2020.04.04 |
프로그래머스 LEVEL 2 : 최댓값과 최솟값 (0) | 2020.04.01 |