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 |
Tags
- image editing
- flow matching
- emerdiff
- diffusion
- segmentation map
- 프로그래머스
- score distillation
- visiontransformer
- 코테
- BOJ
- Programmers
- 3d generation
- 코딩테스트
- controlnext
- segmenation map generation
- 논문리뷰
- diffusion models
- video editing
- VirtualTryON
- video generation
- rectified flow
- 네이버 부스트캠프 ai tech 6기
- DP
- dreammotion
- Vit
- Python
- diffusion model
- 3d editing
- transformer
- masactrl
Archives
- Today
- Total
평범한 필기장
[Programmers_Python] 다음 큰 숫자 본문
https://school.programmers.co.kr/learn/courses/30/lessons/12911
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
이 문제를 간단히 설명하면 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 |