Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |
Tags
- 하이브
- 알고리즘
- HelloWorld
- NumPy
- Sort
- 코딩더매트릭스
- scrapy
- 선형대수
- effective python
- codingthematrix
- graph
- collections
- C
- C언어
- python
- 파이썬
- tensorflow
- hive
- 주식분석
- RNN
- 텐서플로
- 딥러닝
- 하둡2
- LSTM
- 그래프이론
- GRU
- hadoop2
- recursion
- yarn
- Java
Archives
- Today
- Total
EXCELSIOR
[Level 3] 다음 큰 숫자 본문
[문제]
어떤 수 N(1≤N≤1,000,000) 이 주어졌을 때, N의 다음 큰 숫자는 다음과 같습니다.
- N의 다음 큰 숫자는 N을 2진수로 바꾸었을 때의 1의 개수와 같은 개수로 이루어진 수입니다.
- 1번째 조건을 만족하는 숫자들 중 N보다 큰 수 중에서 가장 작은 숫자를 찾아야 합니다.
예를 들어, 78을 2진수로 바꾸면 1001110 이며, 78의 다음 큰 숫자는 83으로 2진수는 1010011 입니다. N이 주어질 때, N의 다음 큰 숫자를 찾는 nextBigNumber 함수를 완성하세요.
[풀이]
bin()
함수를 사용하여 for
문을 돌면서 주어진 숫자의 2진수에서 1의 개수가 같은 수를 찾아서 return
해 주었다.
1 2 3 4 5 6 7 8 | def nextBigNumber(n): for num in range(n+1, 1000001): if bin(num)[2:].count('1') is bin(n)[2:].count('1'): return num break #아래 코드는 테스트를 위한 출력 코드입니다. print(nextBigNumber(78)) | cs |
'Python > 알고리즘_문제' 카테고리의 다른 글
[Level2] 괄호 확인하기 (0) | 2017.09.21 |
---|---|
[Level2] 행렬의 곱셈 (ProdcutMatrix) (0) | 2016.12.06 |
[Level2] 2016년 (getDayName) (0) | 2016.11.27 |
[Level 2] 최솟값 만들기 (getMinSum) (2) | 2016.11.15 |
[Level 1] 약수의 합 (sumDivisor) (0) | 2016.11.14 |
Comments