일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- AsyncTask #doinbackground #스레드 #thread #android #안드로이드
- context #android #getApplicationContext #activity #생명주기 #lifecycle
- python #백준 #9375 #패션왕 #신해빈
- leetcode #python #dfs #재귀
- 코틀린 #Do it #깡샘 #안드로이드
- dfs #bfs #트리구조 #이진트리 #leetcode #파이썬 #python
- 해시테이블 #heapq #파이썬 #리트코드 #알고리즘
- 2004 #조합 0의 개수 #백준
- python #백준 #2580 #스도쿠 #dfs #백트래킹
- leetcode #subsets #dfs #itertools #python
- dfs #bfs #트리구조 #이진트리 #leetcode #python #파이썬
- 파이썬 #zip
- 백준 #파이썬 #bfs #백트래킹 #1697 #숨바꼭질
- 다익스트라 #dijkstra #leetcode #파이썬 #python #algorithm #787
- handler #looper #thread #runnable #핸들러 #루퍼 #스레드 #러너블
- 아스테리스크 #Asterisk #파이썬
- final #java #자바 #안드로이드
- exoplayer #mediaplayer #엑소플레이어 #안드로이드 #android
- dfs #leetcode #python
- gcd #최대공약수 #백준 #2981 #검문
- dfs #python #leetcode #combination
- 다익스트라 #알고리즘 #bfs #그리디 #다이나믹프로그래밍 #leetcode #python
- dfs #leetcode #python #graph #그래프
- 리트코드 #팰린드롬 #파이썬
- dfs #그래프 #graph #python #leetcode #course #schedule
- dfs #bfs #leetcode #python
- dfs #bfs #이진트리 #파이썬 #리트코드
- Python #leetcode #dfs #그래프 #백트래킹
- dfs #이진트리 #트리구조 #직렬화 #역직렬화 #파이썬 #리트코드 #leetcode #python
- dfs #python #leetcode
- Today
- Total
목록Algorithm Study (61)
멋진 개발자가 되고 싶다
k개의 정렬된 리스트를 1개의 정렬된 리스트로 병합하라. Input: lists = [[1,4,5], [1,3,4], [2,6]] Output: [1,1,2,3,4,4,5,6] Explanation: The linked-lists are: [ 1->4->5, 1->3->4, 2->6 ] merging them into one sorted list: 1->1->2->3->4->4->5->6 ** 깔끔한 답안 ** 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 # Definition for singly-linked list. # class ListNode: # def __init__(self, val=0, next=None): # ..
다음 연산을 제공하는 원형 데크를 디자인하라. MyCircularDeque(k): 생성자, 데크의 크기를 k로 설정합니다. insertFront(): 데크 앞에 항목을 추가합니다. 작업이 성공하면 true를 반환합니다. insertLast() : Deque 후방에 항목을 추가합니다. 작업이 성공하면 true를 반환합니다. deleteFront() : Deque 전면에서 항목을 삭제합니다. 작업이 성공하면 true를 반환합니다. deleteLast() : Deque 후면에서 항목을 삭제합니다. 작업이 성공하면 true를 반환합니다. getFront(): Deque에서 프런트 아이템을 가져옵니다. 데크가 비어 있으면 -1을 반환합니다. getRear(): Deque에서 마지막 항목을 가져옵니다. 데크가 비어..
문제 M이상 N이하의 소수를 모두 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 자연수 M과 N이 빈칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다. 출력 한 줄에 하나씩, 증가하는 순서대로 소수를 출력한다. 해설: 처음에는 무식하게 1과 자기 자신을 제외한 수로 일일이 나눠서 소수를 구했지만 "시간 초과" 그래서 인터넷을 좀 뒤져 봤더니 "에라토스테네스의 체"라는 방법을 찾았다! (이름이 일단 좀 간지난다.. 아는 척하면 좀 있어 보일 수도?) https://namu.wiki/w/%EC%97%90%EB%9D%BC%ED%86%A0%EC%8A%A4%ED%85%8C%EB%84%A4%EC%8A%A4%EC%9D%98%20%EC%B2..
매일의 화씨온도 리스트 T를 입력받아서, 더 따뜻한 날씨를 위해서는 며칠을 더 기다려야 하는지를 출력하라. Input: temperatures = [73,74,75,71,69,72,76,73] Output: [1,1,4,2,1,1,0,0] ** 깔끔한 답안 ** 1. 스택 값 비교 1 2 3 4 5 6 7 8 9 10 11 12 class Solution: def dailyTemperatures(self, temperatures: List[int]) -> List[int]: answer = [0] * len(temperatures) stack = [] for i, cur in enumerate(temperatures): #현재 온도가 스택 값보다 높다면 정답 처리 while stack and cur > ..
중복된 문자를 제외하고 사전식 순서(Lexicographical Order)로 나열하라. Input: s = "bcabc" Output: "abc" Input: s = "cbacdcbc" Output: "acdb" 설명: 사전식 순서란 글자 그대로 사전에서 가장 먼저 찾을 수 있는 순서를 말한다. 따라서 만약 "bcabc"같은 경우, b, c가 중복되는데 앞의 두 개를 지우면 "abc"가 되어 사전식 순서가 된다. 하지만 "eabc"같은 경우, 뒤에 e와 중복되는 문자가 없기 때문에 지울 수 없다. 따라서 사전식 순서는 "eabc"가 된다. ** 깔끔한 답안 ** 1. 재귀를 이용한 분리 1 2 3 4 5 6 7 8 9 class Solution: def removeDuplicateLetters(self..
괄호로 된 입력값이 올바른지 판별하라. 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..