์šฐ๊ทœ์ด์ธ์šฐ์œค
Eager To Learn ๐ŸŒŒ
์šฐ๊ทœ์ด์ธ์šฐ์œค
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ๐Ÿก ํ™ˆ
  • ๐Ÿš€ ๊นƒํ—ˆ๋ธŒ
  • โ›… ํƒœ๊ทธ ํด๋ผ์šฐ๋“œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (217)
    • ๐Ÿ‘จ๐Ÿป‍๐Ÿ’ป PS (170)
      • JAVA (82)
      • MYSQL (1)
      • Docker (2)
      • PYTHON (24)
      • LeetCode 150 (39)
      • Algorithm ๊ธฐ๋ฒ• (1)
      • ๋ฐ”ํ‚น๋… (21)
    • ๋ธ”๋กœ๊ทธ ์ด์‚ฌ (0)
    • Error (1)
    • CS (15)
      • DataBase (2)
      • OS (7)
      • Network (1)
      • Spring (1)
      • ์ž๋ฃŒ๊ตฌ์กฐ (3)
      • Java (1)
    • Learned (7)
      • Spring (7)
    • ๊ฐœ๋ฐœ์„œ์  (15)
      • ๊ฐ€์ƒ ๋ฉด์ ‘ ์‚ฌ๋ก€๋กœ ๋ฐฐ์šฐ๋Š” ๋Œ€๊ทœ๋ชจ ์‹œ์Šคํ…œ ์„ค๊ณ„ ๊ธฐ์ดˆ (1)
      • ์˜ค๋ธŒ์ ํŠธ - ์กฐ์˜ํ˜ธ (7)
      • ์นœ์ ˆํ•œ SQL ํŠœ๋‹ (7)
    • ํšŒ๊ณ  (2)
hELLO ยท Designed By ์ •์ƒ์šฐ.
์šฐ๊ทœ์ด์ธ์šฐ์œค

Eager To Learn ๐ŸŒŒ

๐Ÿ‘จ๐Ÿป‍๐Ÿ’ป PS/PYTHON

[ํŒŒ์ด์ฌ PYTHON · ์ž๋ฐ” JAVA] LeetCodeใ€Search in Rotated Sorted Arrayใ€‘

2023. 3. 19. 14:13

 

 

Search in Rotated Sorted Array - LeetCode

Can you solve this real interview question? Search in Rotated Sorted Array - There is an integer array nums sorted in ascending order (with distinct values). Prior to being passed to your function, nums is possibly rotated at an unknown pivot index k (1 <=

leetcode.com


์ž๋ฐ” ์ฝ”๋“œ

class Solution {
    public int search(int[] nums, int target) {
        int idx = findMin(nums);
        int findL = findIdx(nums,0,idx-1,target);
        int findR = findIdx(nums,idx,nums.length-1,target);

        return Math.max(findL,findR);
    }

    public int findIdx(int[] nums,int left, int right,int target){
        while(left<=right){
            int mid = (left+right)/2;
            if(nums[mid]==target){
                return mid;
            }else if(nums[mid]<target){
                left = mid+1;
            }else{
                right = mid-1;
            }
        }
        return -1;
    }

    public int findMin(int[] nums){
        int left = 0;
        int right = nums.length-1;

        if (nums[left]<=nums[right]){
            return 0;
        }

        while(left<right){
            int mid = (left+right)/2;
            if(nums[mid]>nums[right]){
                left = mid+1;
            }else{
                right = mid;
            }
        }
        return left;
    }
}

ํŒŒ์ด์ฌ ์ฝ”๋“œ

class Solution(object):
    def search(self, nums, target):
        idx = self.findMin(nums)
        findL = self.findIdx(nums,0,idx-1,target)
        findR = self.findIdx(nums,idx,len(nums)-1,target)
        return max(findL,findR)


    def findIdx(self,nums,left,right,target):
        while left<=right:
            mid = (left+right)//2
            if nums[mid] == target:
                return mid
            elif nums[mid] < target:
                left = mid+1
            else:
                right = mid -1
        return -1

    def findMin(self,nums):
        left = 0
        right = len(nums)-1
        
        if nums[left] <= nums[right]:
            return 0;

        while left<right:
            mid = (left+right)//2
            if nums[mid]>nums[right]:
                left = mid+1
            else:
                right = mid
        return left

 

์ด๋ถ„ํƒ์ƒ‰์œผ๋กœ ํšŒ์ „๋˜์–ด ์žˆ๋Š” ์˜ค๋ฆ„์ฐจ์ˆœ ๋ฐฐ์—ด์„ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ๋˜์–ด์žˆ๋Š” 2๊ฐœ์˜ ๋ฐฐ์—ด๋กœ ๋‚˜๋ˆˆ๋‹ค.

 

[4,5,6,7,0,1,2] ๋ฐฐ์—ด์ด ์ฃผ์–ด์ง„๋‹ค๋ฉด

 

findMin() ํ•จ์ˆ˜๋Š” 

์˜ค๋ฆ„์ฐจ์ˆœ์ด ์‹œ์ž‘๋˜๋Š” ๊ฐ’์˜ ์ธ๋ฑ์Šค๋ฅผ ๊ตฌํ•˜๋Š” ํ•จ์ˆ˜์ด๋‹ค.

 

์ฆ‰, 4๊ฐ€ ๋ฐ˜ํ™˜๋  ๊ฒƒ์ด๋‹ค.

 

๊ทธ๋ ค๋ฉด ๊ทธ ์ธ๋ฑ์Šค๋ฅผ ๊ธฐ์ค€์œผ๋กœ, [4,5,6,7] ๊ณผ [0,1,2] ๋กœ ๋ถ„๋ฆฌํ•  ์ˆ˜ ์žˆ๊ณ 

 

์˜ค๋ฆ„์ฐจ์ˆœ ๋˜์–ด์žˆ๋Š” ๋‘ ๋ฐฐ์—ด์—์„œ target ๊ฐ’์„ ์ฐพ๊ธฐ ์œ„ํ•œ ์ด๋ถ„ํƒ์ƒ‰์„ ํ•œ๋ฒˆ ๋” ํ•˜๋ฉด ๋œ๋‹ค.

 

    '๐Ÿ‘จ๐Ÿป‍๐Ÿ’ป PS/PYTHON' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • [ํŒŒ์ด์ฌ PYTHON · ์ž๋ฐ” JAVA] LeetCodeใ€Container With Most Waterใ€‘
    • [ํŒŒ์ด์ฌ PYTHON · ์ž๋ฐ” JAVA] LeetCodeใ€3Sumใ€‘
    • [ํŒŒ์ด์ฌ PYTHON] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šคใ€๋ฌด์ง€์˜ ๋จน๋ฐฉ ๋ผ์ด๋ธŒใ€‘
    • [ํŒŒ์ด์ฌ PYTHON · ์ž๋ฐ” Java] LeetCodeใ€Find Minimum in Rotated Sorted Arrayใ€‘
    ์šฐ๊ทœ์ด์ธ์šฐ์œค
    ์šฐ๊ทœ์ด์ธ์šฐ์œค
    ๊ฐœ๋ฐœ์ž ๊ฟˆ๋‚˜๋ฌด

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”