https://school.programmers.co.kr/learn/courses/30/lessons/12911?language=python3
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
전체 코드
def solution(n):
answer = 0
binN = bin(n)
while True:
n += 1
if bin(n)[2:].count("1") == binN.count("1"):
answer = n
break
return answer
알고리즘 설명
Python 내부 함수인 bin()과 list 내장 함수인 count()를 사용하였다.
코드 설명
bin()을 통해 n을 이진수로 변환한 후, count() 함수를 사용해 1의 개수를 count 하였다.
n을 1씩 증가시키면서 반복문에서 증가한 n을 이진수로 변환해 주었다.
만약 1의 개수가 기존 n과 동일하다면, 그 수를 answer에 저장하고 반복문을 탈출한 뒤 answer를 return 한다.
'알고리즘(Python)' 카테고리의 다른 글
[프로그래머스 LV.2] 영어 끝말잇기 (2) | 2023.11.24 |
---|---|
[프로그래머스 LV.2] 피보나치 수 (2) | 2023.11.22 |
[프로그래머스 LV.2] 더 맵게 (0) | 2023.09.20 |
알골 3번(Python) - 최소공배수, 최대공약수 구하기 (백준 2609번) (0) | 2021.09.04 |
알골 2번(Python) - OX 퀴즈(백준 8958번) (0) | 2021.08.29 |