본문 바로가기

CS&알고리즘/프로그래머스

[프로그래머스 LV.2] 다음 큰 수 (feat. 내장함수 bin())

 

https://school.programmers.co.kr/learn/courses/30/lessons/12911

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

처음에 문제를 보고 어,,이진수를 다 해야하나 했느데 파이썬엔 개꿀 내장 함수가 있었으니 

bin()함수다.

 

정답코드

def solution(n):
    cnt=bin(n)[2:].count('1')
    result=0
    for x in range(n+1,1000001):
        if bin(x)[2:].count('1')==cnt:
            result=x
            break
    return result

 

  1. cnt = bin(n)[2:].count('1'):
    • bin(n)은 n을 2진수 문자열로 변환
    • 앞에 문자 제거하려고 [2:]부터 시작
    • .count('1')을 사용해서 '1'의 문자 개수를 센 후 , cnt에 저장
  2. for x in range(n+1, 1000001):
    • n+1부터 1,000,000까지의 정수를 순차적으로 탐색
    • bin(x)[2:].count('1') == cnt 조건으로 x의 2진수 표현에서 1의 개수가 cnt와 같은지 확인 

풀면서 고려한 점들이다 !

 

 

끄읏~!