새소식

PS/LeetCode

3133. Minimum Array End

  • -

Problem : https://leetcode.com/problems/minimum-array-end

 

Difficulty : Medium

 

Status : Solved

 

Time : 00:08:19

 


 

문제 설명

 

 

더보기

n,x 두 정수가 주어진다. n 크기의 정수로 구성된 배열 array를 생성해야 한다. 이 때 0 <= i < n-1에서 nums[i+1]은 nums[i]보다 항상 커야 하며, nums의 모든 원소의 비트 AND 연산은 x여야 한다.

 

nums[n-1]의 최솟값을 구하여라.


 

풀이

 

 

 

풀이 코드

class Solution:
    def minEnd(self, n: int, x: int) -> int:
        nidx = 0
        xidx = 0
        result = x
        while n-1 >= (1 << nidx) :
            while x & (1 << xidx) :
                xidx += 1
            if n-1 & (1 << nidx) :
                result |= 1 << xidx
            xidx += 1
            nidx += 1
        return result

 

 

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.