일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- LeetCode #Python #알고리즘 #코딩테스트 #interview
- 뉴스
- encoding
- 오늘의뉴스
- 경제뉴스
- 크롤링
- 헤드라인
- Python
- 헤드라인모음
- 20201013뉴스
- 헤드라인뉴스
- 기사
- MySQL
- 20200615뉴스
- 코테
- 20201011뉴스
- 뉴스헤드라인
- 백준
- 기사헤드라인
- json
- 파이썬
- 백준2225
- 20201016뉴스
- 알고리즘
- 20200816뉴스
- 20201017뉴스
- 헤드라인기사
- 20201018뉴스
- C++
- 20201015뉴스
- Today
- Total
목록분류 전체보기 (72)
HelloCho
문제 이 문제는 2차원 배열의 데이터를 나선의 모양으로 순회하는 문제이다. 즉... 아래 빨간색의 방향대로 순차적으로 값을 가져오면 된다. class Solution: def spiralOrder(self, matrix): if not matrix: return [] num_row = len(matrix) num_col = len(matrix[0]) res = [] zone = 0 num_elements = (num_row * num_col) while len(res) < num_elements: # move right for i in range(zone,num_col-zone): res.append(matrix[zone][i]) if len(res)==num_elements: return res # m..
문제 이 문제는 haystack의 문자 안에서 needle의 위치를 찾는 문제이다. 존재할 경우 index값을 없다면 -1 값을 return 한다. 첫 번째 방법 python 내장함수의 find함수를 활용한다. class Solution: def strStr(self, haystack,needle): length = len(needle) if length ==0: return 0 return haystack.find(needle) find 함수를 통해서 아주 쉽게 ? 해결 가능했다. 결과 20ms의 속도와 13.9mb 메모리 사용으로 통과! 다음 방법은.. for문을 이용해서 needle값을 찾는 경우이다. class Solution: def strStr(self, haystack,needle): len..
문제 이 문제는 배열과 값이 주어질 때, 배열 안에서 주어진 값을 제거하고 값을 in-place방식으로 return 하는 문제이다. 해결 방법: for문을 통해서 val과 일치하는 값을 제거했다. del을 통해서 제거할 때 index값이 하나씩 당겨지기 때문에 s라는 변수를 통해서 index값을 맞춰줬다. class Solution: def removeElement(self, nums, val): s = 0 for idx in range(len(nums)): if nums[idx-s] == val: del nums[idx-s] s +=1 return len(nums) 결과 28ms의 속도와 13.9MB로 통과했다!
문제 이 문제는 정렬된 배열이 주어질 때, 중복된 값을 제거해서 num이라는 배열에 in-place방식으로 return 하는 문제이다. 처음 시도한 방법은 nums에 있는 값을 하나씩 살펴보면서 중복된 값을 살펴보는 방법이다. class Solution: def removeDuplicates(self, nums): """ :type nums: List[int] :rtype: int """ len_ = 1 if len(nums)==0: return 0 for i in range(1,len(nums)): if nums[i] != nums[i-1]: nums[len_] = nums[i] len_ +=1 return len_ 정렬된 배열이기 때문에 i-1값과 i값을 비교하면 같은 값이 있는지에 대한 여부를 다 ..
문제 이 문제는 두 개의 정렬된 Linked List가 주어질 때, 두 Linked List를 합쳐 정렬된 Linked List로 return 하는 문제이다. 단순하게 두개의 Linked list의 값을 하나씩 비교하며 Linked List로 만들어줬다. # Definition for singly-linked list. class ListNode: def __init__(self, val=0, next=None): self.val = val self.next = next class Solution: def mergeTwoLists(self, l1,l2): l3 = None l3_ = None while l1 and l2: n = None if l1.val < l2.val: n = l1 l1 = l1.ne..
문제 #20. Add Two NumbersValid Parentheses 이 문제는 괄호가 주어졌을 때, 올바르게 괄호가 닫혀있는지의 여부를 확인하는 문제이다. 이 문제를 해결하기 위해서 stack 자료구조를 활용했다. class Solution: def isValid(self, s): match = { ')':'(', '}':'{', ']': '[' } stack = [] for i in s: if i in '({[': stack.append(i) elif i in match: if len(stack) == 0 : return False else: t = match[i] if t != stack.pop(): return False return len(stack) == 0 괄호를 여는 문자 ( { [의 ..
문제 #4. Add Two NumbersMedian of Two Sorted Arrays(Medium) 이 문제는 두개의 정렬된 array가 주어졌을 때 두개의 array를 합쳐 median값을 구하는 문제이다. 먼저 시도한 방법은 두개의 array를 일일이 비교해서 merge한 이후에 median값을 계산하는 것이였다. 코드는 아래와 같다. class Solution: def findMedianSortedArrays(self, nums1, nums2): len1 = len(nums1) len2 = len(nums2) array = [] lt = 0 rt = 0 while len1 and len2: if nums1[lt]> nums2[rt]: array.append(nums2[rt]) rt +=1 len..
문제 #2. Add Two Numbers 이 문제는 비어있지 않는 linked list 2개가 주어질 때 각각의 자리수에 맡는 element들을 더하고 다시 linked list의 형태로 반환하는 문제이다. # Definition for singly-linked list. class ListNode: def __init__(self, val=0, next=None): self.val = val self.next = next class Solution: def addTwoNumbers(self, l1: ListNode, l2: ListNode) -> ListNode: l1_ = '' l2_ = '' while l1 : l1_ += str(l1.val) l1 = l1.next while l2 : l2_ +=..