아무나개발하자

다음 큰 숫자 본문

코딩테스트

다음 큰 숫자

개발천재나천재 2023. 1. 8. 10:23

문제

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

 

풀이

def convert2binary(num):
    temp = []
    while True:
        remainder = num % 2
        num = num // 2
        temp.append(remainder)
        
        if num < 2:
            temp.append(num)
            break
            
    temp.reverse()
    result = "".join(map(str, temp))
    
    return result

def solution(n):
    answer = 0
    binary_n = convert2binary(n)
    one_count = binary_n.count("1")
    
    while(True):
        n += 1
        binary_next = convert2binary(n)
        one_count_next = binary_next.count("1")
        if (one_count == one_count_next):
            answer = n
            break
    
    return answer

사실 이게 효율성을 통과 할줄은 몰랐다... 방법이 생각이 안나서 그냥 하나하나 비교하는 방법으로 했는데, 통과하더라... 더좋은 방법이 있으면 댓글에 남겨주세요.

 

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

'코딩테스트' 카테고리의 다른 글

이상한 문자 만들기  (0) 2023.01.10
시저 암호  (0) 2023.01.09
행렬의 덧셈  (0) 2023.01.07
프린터  (0) 2023.01.05
H-Index  (0) 2023.01.04