전체 글 51

(간단한 코드)리트코드 643. Maximum Average Subarray I

이 문제는 "슬라이딩 윈도우"라고 부르는 문제다.  슬라이딩 윈도우는 딥러닝에서 정말로 자주 나오는 용어이며, 이는 통계학에서도 유래한 것으로 알고 있다(아닐 수도) k길이 만큼으로 리스트 안에 있는 숫자들을 더하고 평균을 구한 값들 중에서 가장 큰 수를 반환하면 된다.이런 방식은 통계학에서 moving average(이동 평균)이라고 하며, 데이터의 추세를 파악하는데 사용된다. 코드는 다음과 같다class Solution: def findMaxAverage(self, nums: List[int], k: int) -> float: n = len(nums) cur_sum = 0 for i in range(k): # 이부분은 k가 고정된 숫자가 아니므로, 처음에는 ..

(간단한 코드)리트코드 367. Valid Perfect Square

해당 문제는 루트 수식을 상용하지 않고서, 해당 숫자가 정수 제곱근이 있는지 알아보는 문제이다.class Solution: def isPerfectSquare(self, num: int) -> bool: root_num = num**(0.5) #num에 1/2 승을 제곱해주면, 루트를 하게 된다 return int(root_num) == root_num #정수형으로 변형해도 수치가 같으면(제외할 소수가 존재하지 않다면), True를 뱉는다이런 식으로 풀어도 되기는 하지만, 이는 문제의 의도가 아니므로, 다음과 같이 풀겠다.class Solution: def isPerfectSquare(self, num: int) -> bool: l, r = 1, ..

(간단한 코드)리트코드 278. First Bad Version

이 문제는 주어진 숫자 n까지 숫자들이 있고, bad라는 숫자 부터 그 뒤의 모든 숫자가 좋지 않다는 뜻을 담고 있다. 우리는 bad의 수치를 모르는 상태로, bad의 숫자를 찾는 것이 목표이다. 우선 이것은 리스트가 아니므로, 인덱스를 표현하듯이 0부터 시작을 하지 않아야 한다.코드는 다음과 같다.# The isBadVersion API is already defined for you.# def isBadVersion(version: int) -> bool:class Solution: def firstBadVersion(self, n: int) -> int: l,r=1,n while l 우선 isBadVersion()을 통해서 해당 숫자가 좋은지 나쁜지를 판..