리트코드 풀이

Leetcode 1365 풀이(파이썬, 스위프트)

ag2개발자 2022. 2. 6. 22:15

nums에 있는 숫자들을 일일히 비교해가면서 배열의 다른 몇개의 숫자보다 더 큰지 판별하는 것인 줄 알았다.

하지만 nums를 다른 배열에 넣어두고 nums를 정렬한 후 인덱스를 찾으면 훨씬 좋은방법이 된다는걸 깨달았다.

스위프트의 경우 nums는 let 변수이니 var에 담아두고 sort()나 sorted()함수를 이용하자

 

스위프트:

class Solution {
    func smallerNumbersThanCurrent(_ nums: [Int]) -> [Int] {
        var a = [Int]()
        var b = nums
        
        var s = nums
        s.sort()
        for i in 0..<nums.count{
            a.append(s.firstIndex(of: b[i])!)
  
        }
        print(s)
        return a
    }
}

파이썬:

class Solution:
    def smallerNumbersThanCurrent(self, nums: List[int]) -> List[int]:
        b=[]
        for i in range(len(nums)):
            b.append(nums[i])
        nums.sort()
        arr=[]
        
        for i,value in enumerate(b):
            arr.append(nums.index(value))
        return arr