https://school.programmers.co.kr/learn/courses/30/lessons/12911
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
def solution(n):
answer = 0
str = bin(n)[2:] #n을 이진수로 변환
cnt1 = str.count("1") #1의 갯수 세기
while True:
n += 1 #n을 1씩 증가
str = bin(n)[2:] #n을 이진수로 변환
cnt2 = str.count("1") #1의 갯수 세기
if cnt1 == cnt2: #1의 갯수가 같으면 종료
return n
- bin() 함수로 n을 이진변환 후 1의 개수를 count한다.
- n을 1씩 증가시키면서 이진변환 시 1의 갯수를 비교한다.
- bin()[2:]은 이진문자열을 알려주는 '0b' 문자열을 제거하고자 사용했으나, 다른 사람의 풀이를 보니 [2:]을 생략해도 무관한 것 같다.
'코딩테스트 > Python' 카테고리의 다른 글
| [프로그래머스][파이썬] 연속 부분 수열 합의 개수 (2) | 2023.12.05 |
|---|---|
| [프로그래머스][파이썬] 귤 고르기 (2) | 2023.12.05 |
| [프로그래머스][파이썬] 이웃한 칸 (0) | 2023.11.29 |
| [프로그래머스][파이썬] 붕대 감기 (0) | 2023.11.29 |
| [프로그래머스][파이썬] 멀리 뛰기 (1) | 2023.11.24 |