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 | 31 |
Tags
- diffusion model
- 3d generation
- controlnext
- style align
- dreammotion
- Programmers
- 3d editing
- segmenation map generation
- 논문리뷰
- magdiff
- visiontransformer
- 코테
- 네이버 부스트캠프 ai tech 6기
- video editing
- video generation
- Vit
- image editing
- diffusion
- Python
- emerdiff
- score distillation
- VirtualTryON
- controllable video generation
- BOJ
- diffusion models
- segmentation map
- DP
- transformer
- 코딩테스트
- 프로그래머스
Archives
- Today
- Total
평범한 필기장
[Programmers_Python] 다음 큰 숫자 본문
https://school.programmers.co.kr/learn/courses/30/lessons/12911
이 문제를 간단히 설명하면 n이라는 수가 주어지면 n보다 큰 수 중에서 n과 이진수에서 1의 갯수가 같은 최소의 자연수를 찾는 문제이다.
내 풀이 방식
나는 n보다 큰 수들을 하나하나 이진수로 바꾸고 1의 갯수를 세가면서 하면 당연히 시간초과가 날 줄 알았다,,, 그래서 더 간단한 규칙이 있을 줄 알고 그러한 규칙을 찾아서 구현을 하려했지만 실패했다. 그래서 내가 생각을 못해낸건가 싶어서 다른 분들의 풀이를 보니 그냥 n보다 큰 수들을 하나하나 2진수로 변환해서 1의 갯수를 세서 찾는 방식으로 풀었다.
뭔가 엄청 허무했지만 시간초과가 나더라도 저 방식을 먼저해봤어야했는데,,, 라는 아쉬움이 남았다,,,ㅎㅎ
def solution(n):
count_one = str(bin(n)[2:]).count('1')
# print(count_one)
for i in range(n+1,1000001):
count_num_bin = str(bin(i)).count('1')
if count_one == count_num_bin:
return i
'코딩 테스트 준비 > Programmers' 카테고리의 다른 글
[Programmers_Python] 멀리 뛰기 (0) | 2023.06.24 |
---|---|
[Programmers_Python] 구명보트 (0) | 2023.06.24 |
[Programmers_Python] 파일명 정렬 (0) | 2023.06.20 |
[Programmers_Python] 단어 변환 (0) | 2023.06.19 |
[Programmers_Python] 등굣길 (0) | 2023.06.14 |