파이썬

· [Python]
안녕하심까! 또 돌아온 파이썬 공부입니다. 오늘의 파이썬의 기초 배열, 리스트의 메소드들을 공부해봅시다. 복습! 리스트는? 배열의 한 종류로서 인덱싱이 가능한 원소들을 저장하며 그 원소들은 바뀔 수도 있고 중복될 수도 있습니다. 이전 글: [Python 공부] 리스트의 기초? [Python 공부] 리스트의 기초? 안녕하심까! 다시 돌아온 파이썬 공부입니다. 오늘은 기초 오브 기초, 리스트를 공부 해봅시다. 리스트는 뭘까?) 리스트(list)는 여러가지 원소(element)들을 저장하는 배열(array)의 한 종류입니다. gaebalogaebal.tistory.com 메소드란? 생성된 객체의 특정 행위입니다. 리스트로서 생성된 객체가 존재합니다. 그 객체를 ls라고 명했을 때 이 ls는 할 수 있는 행위들..
· [Python]
안녕하심까! 다시 돌아온 파이썬 공부입니다. 오늘은 기초 오브 기초, 리스트를 공부 해봅시다. 리스트는 뭘까?) 리스트(list)는 여러가지 원소(element)들을 저장하는 배열(array)의 한 종류입니다. 파이썬에는 리스트말고도 다른 종류의 배열들 또한 존재하죠. 리스트의 성질) 리스트는 다른 배열들과는 달리 범용성이 뛰어난 편입니다. 리스트를 구분짓는 가장 상징적인 성질 3가지를 꼽자면 1. 원소들이 색인(indexing) 가능하다 2. 원소들을 바꿀 수 있다(mutable) 3. 중복된 원소들을 저장할 수 있다 위의 말들이 복잡해 보일 수도 있지만 말하고자하는 내용들은 쉬우니 바로바로 설명해봅시다. 1. 색인(indexing)이 가능하다) 간단합니다. 리스트 안의 원소들에게 몇 번째 원소인지 숫..
· [Python]
안녕하심까! 오랜만에 공부 글로 돌아왔네요. 요즘 medium 레벨의 릿코드 문제들을 풀면서 Greedy Algorithm을 사용하는 문제들이 많이 나오기 시작했습니다. 하지만 저는 대학교에서 이것을 들어본 적도 풀어본 적도 없었기 때문에 결국에 막혀서 NeetCode의 영상들을 많이 참고하면서 풀고 있습니다. 연속 3문제를 유튜브로 찾아보니까 자존심이 상하더군요 하하! 그래서 아싸리 인터넷으로 찾아서 공부해보기로 했습니다. 그리디 알고리즘?) 그리디 알고리즘은 제가 일반적으로 생각하는 알고리즘들과 다릅니다. 제가 알고있는 Binary Search나 DFS (Depth-First-Search) 알고리즘들은 정해져 있는 틀, 풀이 방식, 그리고 사용되는 문제 형태들이 정해져 있는 느낌입니다. 하지만 그리디..
Solution) class Solution: def isSubsequence(self, s: str, t: str) -> bool: original, sub = 0, 0 while sub < len(s) and original < len(t): if s[sub] == t[original]: sub += 1 original += 1 if sub == len(s): return True return False Problem: LeetCode Time Complexity: O(m+n) Space Complexity: O(1) Explanation) There are two pointers sub and original that will iterate s and t. We're using two pointer..
Solution) class Solution: def lengthOfLastWord(self, s: str) -> int: res = 0 for i in range(len(s)-1, -1, -1): if s[i].isalpha(): res += 1 else: if res: break return res Problem: LeetCode Time Complexity: O(n) Space Complexity: O(1) Explanation) We'll iterate through s backwards to find the last word. When we find the last word, we will count how many characters the last word has and return that..
Solution) class Solution: def removeElement(self, nums: List[int], val: int) -> int: res = 0 left, right = 0, len(nums)-1 while left int: res = 0 left, right = 0, len(nums)-1 while left
Solution) class Solution: def isPalindrome(self, head: Optional[ListNode]) -> bool: fast, slow = head, head while fast and fast.next: fast = fast.next.next slow = slow.next prev = None while slow: temp = slow.next slow.next = prev prev = slow slow = temp left, right = head, prev while right: if left.val != right.val: return False left = left.next right = right.next return True Time Complexity: O..
정답) class Solution: def containsDuplicate(self, nums: List[int]) -> bool: dupSet = set() for n in nums: if n in dupSet: return True else: dupSet.add(n) return False 문제) 문제출처 정수 배열 nums가 주어졌을 때, 배열의 어떤 원소가 적어도 두 번 존재한다면 True를 리턴하시오. 만약 모든 원소가 한 번씩밖에 존재하지 않는다면 False를 리턴하시오. 예시 1) nums = [1, 2, 3, 1] output = True 예시 2) nums = [1, 2, 3, 4] output = False 예시 1) nums = [1, 1, 1, 3, 3, 4, 3, 2, 4, 2] ..
정답) class Solution: def reverseList(self, head: Optional[ListNode]) -> Optional[ListNode]: newTail = None newHead = None while head: newHead = ListNode(head.val) newHead.next = newTail head = head.next newTail = newHead return newHead 문제) 문제출처 Singly linked list의 head가 주어졌을 때, 이 리스트가 거꾸로 변환된 리스트를 리턴하시오. 예시 1) 예시 2) 예시 3) head = [] output = [] 제한) 리스트에는 0~5000개의 노드가 존재합니다. -5000 Optional[ListNode..
정답) class Solution: def isHappy(self, n: int) -> bool: res = 0 seen = set() while res != 1: res = 0 while n: res += (n % 10)**2 n //= 10 if res in seen: return False seen.add(res) n = res return True 문제) 문제출처 숫자 n이 행복한지 결정하는 알고리즘을 작성하시오. 행복한 숫자는 다음과 같을 때 결정됩니다: - 아무 양수가 주어졌을 때 양수의 각 자릿수를 제곱한 값들을 더하시오 - 위 단계를 합이 1이 될 때까지 반복하시오. 1이 나오지 않는 경우에는 같은 숫자들이 반복해서 나옵니다. - 각 자릿수의 합이 1로 끝나는 숫자가 행복한 숫자입니다. 행..
위대한먼지
'파이썬' 태그의 글 목록