코딩 테스트/leetCode

[leetCode] 1365. How Many Numbers Are Smaller Than the Current Number (Python)

우주바다 2022. 10. 18. 21:00
728x90

▼ 문제 바로가기 (링크) 

https://leetcode.com/problems/how-many-numbers-are-smaller-than-the-current-number/

 

How Many Numbers Are Smaller Than the Current Number - LeetCode

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com


리스트 nums가 주어진다. 0번째부터 마지막 요소까지

각 요소보다 작은 수가 배열 내에 몇 개 있는 지를 배열로 반환하는 문제.

 

class Solution:
    def smallerNumbersThanCurrent(self, nums: List[int]) -> List[int]:
        
        now = 0
        cnt = 0 
        answer = []

        for i in range(len(nums)):  # 현재 숫자를 인덱스를 통해 저장
            now = nums[i]
            for j in nums:   # 전체 리스트 순회(자기 자신 포함해도 값에 영향 없음)
                if now > j :
                    cnt += 1
            answer.append(cnt)
            cnt = 0    # 카운터 초기화
        return answer

현재 선택한 요소와 나머지 요소를 비교해야하므로

기준이 되는 수를 담을 변수 now를 만들고, 

각 숫자를 담을 변수 cnt,  cnt들이 순서대로 담길 배열 answer까지 만들고 시작.

 

처음에는 sort로 정렬하고 시작하려다가,

각 요소별 cnt를 원래 순서대로 출력해야 하므로 위와 같이 만들었다.

 

Runtime: 221 ms, faster than 55.92%

Memory Usage: 14 MB, less than 9.09% 

728x90
반응형