티스토리 뷰

728x90

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

 

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

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

programmers.co.kr

 

  • 해설 :

n이 주어졌을 때, n보다 큰 수들중 n과 이진수의 1 개수가 같은 가장 작은 수를 찾으면 된다.

 

 

 

  • 풀이 :

숫자를 이진수로 변환하여 1의 개수를 카운트해서 리턴해주는 binary함수를 구현하고 c라는 변수에 n의 이진수 1 값의 개수를 넣어둔다. while문으로 n을 1씩 증가시켜가며 이진수 1의 개수가 c와 같은 값을 찾아서 리턴한다.

 

 

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
def solution(s):
    stack = [s[0]]
    for i in s[1:]:
        if stack:
            if i == ")":
                if stack[-1== "(":
                    stack.pop()
                else:
                    return False
            else:
                stack.append(i)
        else:
            stack.append(i)
    return False if stack else True
cs
320x100
댓글
© 2022 WonSeok, All rights reserved