본문 바로가기

PS/프로그래머스

[프로그래머스 LV 2 ] 다음 큰 숫자 파이썬/python

728x90

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

 

코딩테스트 연습 - 다음 큰 숫자

자연수 n이 주어졌을 때, n의 다음 큰 숫자는 다음과 같이 정의 합니다. 조건 1. n의 다음 큰 숫자는 n보다 큰 자연수 입니다. 조건 2. n의 다음 큰 숫자와 n은 2진수로 변환했을 때 1의 갯수가 같습니

programmers.co.kr

 

 

간단한 2랩문제.

bin함수를 통해서 2진수 문자열로 바꿔준 후에

 

2진수상태의 n과 next_num  각 자리의 합이 같으면 리턴

 

이 풀이 말고 count함수를 쓸 수있다. 문자열에 매개변수에 해당하는 문자가 몇 개 있나 리턴해줌

n_count = bin(n).count('1')

이렇게 쓰면 2진수 n에 있는 1의 갯수가 리턴됨!!!!!(쩌름)

 

 

각 자리의 합을 구해 푼 코드

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
29
def solution(n):
    answer = 0
    next_num = n + 1;
    while 1:
 
        str_n = bin(n)
        str_next = bin(next_num)
 
        sum_bin_n = 0
        sum_bin_next = 0
 
        for a in range(2len(str_n)):
            sum_bin_n += int(str_n[a])
        for b in range(2len(str_next)):
            sum_bin_next += int(str_next[b])
 
        if sum_bin_n == sum_bin_next:
            answer = next_num
            break
        else:
            next_num += 1
 
    print(answer)
 
    return answer
 
 
solution(15)
 
cs

 

728x90