[LeetCode] Arrays_101 - Introduction
2022. 3. 1. 20:00ㆍ03. Resources/Python
728x90
반응형
배열을 다루는 Arrays_101의 맨 첫 챕터다.
총 3문제가 있었다.
이 챕터의 문제는 이미 다 풀었는데, 다시 한 번 블로그에 올리면서 복기도 하고, 상위 코드와의 차이점도 고민해보자.
Max Consecutive Ones
배열을 입력으로 주었을 때, 연속해서 1이 나온 횟수 중 제일 큰 값을 찾아내는 문제였다.
문제가 쉬워서 그런지 코드도 직관적으로 나왔고, 바로 통과도 했다.
class Solution:
def findMaxConsecutiveOnes(self, nums: List[int]) -> int:
count = 0
count_max = 0
for num in nums:
if num == 1:
count += 1
else:
count = 0
if count >= count_max:
count_max = count
return count_max
결과는
- 연산시간: 상위 41.52%
- 나보다 상위에 있는 코드와 차이점: if 문 하나에서 최대값 판단도 같이 처리함
- 메모리: 상위 68.88%
- 나보다 상위에 있는 코드와 차이점: 잘 모르겠다..
Find Numbers with Even Number of Digits
배열을 입력으로 주었을 때, 자릿수가 짝수인 정수의 갯수를 구하는 문제였다.
역시 문제가 쉬워서 직관적으로 코딩할 수 있었다.
class Solution:
def findNumbers(self, nums: List[int]) -> int:
count_even = 0
for num in nums:
if len(str(num))%2 == 0:
count_even += 1
return count_even
결과는
- 연산시간: 상위 82.78%
- 나보다 상위에 있는 코드와 차이점: 완전히 똑같은 코드인데 차이가 나는거면 변수 길이가 길어서 그런건가..?
- 메모리: 상위 5.34%
- 나보다 상위에 있는 코드와 차이점: 함수를 하나 더 만들어서 변수 자체가 없도록 만들었다.
Squares of a Sorted Array
배열을 입력으로 주었을 때, 배열 내의 모든 원소를 제곱하고 오름차순 정렬하는 문제였다.
이 문제도 쉽게 코딩할 수 있었다.
class Solution:
def sortedSquares(self, nums: List[int]) -> List[int]:
square_list = []
for idx, num in enumerate(nums):
square_list.append(num**2)
return sorted(square_list)
결과는
- 연산시간: 상위 9.2%
- 나보다 상위에 있는 코드와 차이점: 파이써닉한 방법으로 문제를 풀었다. for문 처리를 sorted 함수 안에서 처리했다. 대박!
- 메모리: 상위 83.88%
- 나보다 상위에 있는 코드와 차이점: 새롭게 리스트를 만들어서 문제를 푼게 아니라 입력으로 들어온 nums 리스트에서 바로 작업했다.
맨 첫 챕터여서 그런지 해결하기 쉬운 문제들이 많이 나왔다.
일단 문제는 풀었지만, 다른 사람들 코드를 보면서 배울게 많은 것 같다.
역시 뭘 하든 복기가 중요하다!
반응형
'03. Resources > Python' 카테고리의 다른 글
파이썬으로 네이버 메일 보내기 (IMAP/SMTP 설정) (0) | 2023.01.30 |
---|---|
[파이썬/Python] 설치된 패키지 목록 보고 파일로 저장하기 (2) | 2022.05.18 |
[LeetCode] 문제풀이 시작! (0) | 2022.02.27 |
[Python/SQL] PyMySQL - 데이터 삭제 (DELETE) (0) | 2021.09.04 |
[Python/SQL] PyMySQL - 데이터 업데이트 (UPDATE) (0) | 2021.09.02 |