일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- dfs #bfs #트리구조 #이진트리 #leetcode #python #파이썬
- exoplayer #mediaplayer #엑소플레이어 #안드로이드 #android
- dfs #leetcode #python
- 2004 #조합 0의 개수 #백준
- dfs #bfs #트리구조 #이진트리 #leetcode #파이썬 #python
- dfs #이진트리 #트리구조 #직렬화 #역직렬화 #파이썬 #리트코드 #leetcode #python
- 아스테리스크 #Asterisk #파이썬
- 파이썬 #zip
- 다익스트라 #알고리즘 #bfs #그리디 #다이나믹프로그래밍 #leetcode #python
- dfs #그래프 #graph #python #leetcode #course #schedule
- AsyncTask #doinbackground #스레드 #thread #android #안드로이드
- 백준 #파이썬 #bfs #백트래킹 #1697 #숨바꼭질
- python #백준 #2580 #스도쿠 #dfs #백트래킹
- dfs #python #leetcode
- 해시테이블 #heapq #파이썬 #리트코드 #알고리즘
- Python #leetcode #dfs #그래프 #백트래킹
- 다익스트라 #dijkstra #leetcode #파이썬 #python #algorithm #787
- final #java #자바 #안드로이드
- leetcode #python #dfs #재귀
- 리트코드 #팰린드롬 #파이썬
- handler #looper #thread #runnable #핸들러 #루퍼 #스레드 #러너블
- context #android #getApplicationContext #activity #생명주기 #lifecycle
- gcd #최대공약수 #백준 #2981 #검문
- 코틀린 #Do it #깡샘 #안드로이드
- dfs #bfs #이진트리 #파이썬 #리트코드
- leetcode #subsets #dfs #itertools #python
- dfs #leetcode #python #graph #그래프
- dfs #python #leetcode #combination
- python #백준 #9375 #패션왕 #신해빈
- dfs #bfs #leetcode #python
- Today
- Total
목록Algorithm Study/leetcode (44)
멋진 개발자가 되고 싶다
괄호로 된 입력값이 올바른지 판별하라. Input: s = "()[]{}" Output: true Input: s = "([)]" Output: false Input: s = "{[]}" Output: true ** 깔끔한 답안 ** 1. 스택 일치 여부 판별 1 2 3 4 5 6 7 8 9 10 11 12 13 14 class Solution: def isValid(self, s: str) -> bool: stack = [] table = {')': '(', ']': '[', '}': '{'} # 스택 이용 예외 처리 및 일치 여부 판별 for char in s: if char not in table: stack.append(char) elif not stack or table[char] != stac..
인덱스 m에서 n까지를 역순으로 만들어라. 인덱스 m은 1부터 시작한다. Input: head = [1,2,3,4,5], left = 2, right = 4 Output: [1,4,3,2,5] ** 깔끔한 답안 ** 1. 반복 구조로 노드 뒤집기 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 # Definition for singly-linked list. # class ListNode: # def __init__(self, val=0, next=None): # self.val = val # self.next = next class Solution: def reverseBetween(self, head: ListNode, left: int, right: ..
연결 리스트를 홀수 노드 다음에 짝수 노드가 오도록 재구성하라. 공간 복잡도 O(1), 시간 복잡도 O(n)에 풀이하라. Input: head = [1,2,3,4,5] Output: [1,3,5,2,4] ** 깔끔한 풀이 ** 1. 반복 구조로 홀짝 노드 처리 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 # Definition for singly-linked list. # class ListNode: # def __init__(self, val=0, next=None): # self.val = val # self.next = next class Solution: def oddEvenList(self, head: ListNode) -> List..
연결 리스트를 입력받아 페어 단위로 스왑 하라. Input: head = [1,2,3,4] Output: [2,1,4,3] 1. 내가 직접 푼 풀이 1 2 3 4 5 6 7 8 9 10 11 12 13 # Definition for singly-linked list. # class ListNode: # def __init__(self, val=0, next=None): # self.val = val # self.next = next class Solution: def swapPairs(self, head: ListNode) -> ListNode: root = head while head and head.next: head.val, head.next.val = head.next.val, head.val h..
역순으로 저장된 연결 리스트의 숫자를 더하라. Input: l1 = [2,4,3], l2 = [5,6,4] Output: [7,0,8] Explanation: 342 + 465 = 807. 1. 자료형 변환 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 32 33 34 35 36 37 38 # Definition for singly-linked list. # class ListNode: # def __init__(self, val=0, next=None): # self.val = val # self.next = next class Solution: def reverseList(self, head:Lis..
연결 리스트를 뒤집어라. ex) Input: head = [1,2,3,4,5] Output: [5,4,3,2,1] ** 깔끔 답안 ** 1. 재귀 구조로 뒤집기 1 2 3 4 5 6 7 8 9 10 11 12 13 14 # Definition for singly-linked list. # class ListNode: # def __init__(self, val=0, next=None): # self.val = val # self.next = next class Solution: def reverseList(self, head: ListNode) -> ListNode: def reverse(node, prev = None): if not node: return prev next, node.next = no..
정렬되어 있는 두 연결 리스트를 합쳐라. Input: l1 = [1,2,4], l2 = [1,3,4] Output: [1,1,2,3,4,4] ** 깔끔한 답안 ** 1. 재귀 구조로 연결 1 2 3 4 5 6 7 8 9 10 11 12 # 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: ListNode, l2: ListNode) -> ListNode: if (not l1) or (l2 and l1.val > l2.val): l1, l2 = l2, ..
연결 리스트가 팰린드롬 구조인지 판별하라 팰린드롬 : 이름을 거꾸로 뒤집어도 처음과 같은 문자. ex. 기러기, 미레미, anna 1. 내가 직접 푼 코드 1 2 3 4 5 6 7 8 9 class Solution: def isPalindrome(self, head: ListNode) -> bool: p_list = [] a = head while a.next is not None: p_list.append(a.val) a = a.next p_list.append(a.val) return p_list == p_list[::-1] cs 해설: 리스트 하나를 생성하고 연결 리스트의 값들을 일일히 리스트에 추가했다. 이렇게 하는 이유는 문제 특성상 앞과 뒤를 비교해야 하는데 연결 리스트는 원하는 위치를 자유롭..