728x90
▼ 문제 바로가기 (링크) ▼
https://leetcode.com/problems/how-many-numbers-are-smaller-than-the-current-number/
리스트 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
반응형