일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 #이진트리 #트리구조 #직렬화 #역직렬화 #파이썬 #리트코드 #leetcode #python
- leetcode #python #dfs #재귀
- Python #leetcode #dfs #그래프 #백트래킹
- 해시테이블 #heapq #파이썬 #리트코드 #알고리즘
- dfs #bfs #이진트리 #파이썬 #리트코드
- gcd #최대공약수 #백준 #2981 #검문
- dfs #bfs #트리구조 #이진트리 #leetcode #파이썬 #python
- 다익스트라 #알고리즘 #bfs #그리디 #다이나믹프로그래밍 #leetcode #python
- 다익스트라 #dijkstra #leetcode #파이썬 #python #algorithm #787
- dfs #python #leetcode
- 백준 #파이썬 #bfs #백트래킹 #1697 #숨바꼭질
- dfs #bfs #leetcode #python
- context #android #getApplicationContext #activity #생명주기 #lifecycle
- 코틀린 #Do it #깡샘 #안드로이드
- dfs #leetcode #python #graph #그래프
- dfs #python #leetcode #combination
- handler #looper #thread #runnable #핸들러 #루퍼 #스레드 #러너블
- python #백준 #9375 #패션왕 #신해빈
- 2004 #조합 0의 개수 #백준
- 리트코드 #팰린드롬 #파이썬
- final #java #자바 #안드로이드
- 파이썬 #zip
- dfs #bfs #트리구조 #이진트리 #leetcode #python #파이썬
- python #백준 #2580 #스도쿠 #dfs #백트래킹
- 아스테리스크 #Asterisk #파이썬
- dfs #그래프 #graph #python #leetcode #course #schedule
- AsyncTask #doinbackground #스레드 #thread #android #안드로이드
- exoplayer #mediaplayer #엑소플레이어 #안드로이드 #android
- leetcode #subsets #dfs #itertools #python
- dfs #leetcode #python
- Today
- Total
목록Algorithm Study (61)
멋진 개발자가 되고 싶다
연결 리스트를 입력받아 페어 단위로 스왑 하라. 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..

1. 문제 : https://www.acmicpc.net/problem/2447 2447번: 별 찍기 - 10 재귀적인 패턴으로 별을 찍어 보자. N이 3의 거듭제곱(3, 9, 27, ...)이라고 할 때, 크기 N의 패턴은 N×N 정사각형 모양이다. 크기 3의 패턴은 가운데에 공백이 있고, 가운데를 제외한 모든 칸에 별이 www.acmicpc.net 2. 알고리즘 : n=3일 때와 n=3^2일 때의 별 찍기를 보면 n=3에서 *이 찍히는 패턴대로 n=3^2에서 'n=3일 때의 별의 배열'이 찍힌다. 이를 일반화 시켜서 표현하면 n=3^i일 때, 'n=3^(i-1)일 때의 별의 배열'이 찍힌다. 이것이 핵심 알고리즘이다. 아마 몇몇 분들은 이미 이러한 패턴을 알아차렸을지도 모른다. 하지만 우리 같은 초짜..
문제 0보다 크거나 같은 정수 N이 주어진다. 이때, N!을 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 정수 N(0 ≤ N ≤ 12)가 주어진다. 출력 첫째 줄에 N!을 출력한다. 1. 내가 푼 풀이 1 2 3 4 5 6 7 8 9 10 11 12 def factorial(num): if num == 0: return 1 if num == 1: return 1 return num*factorial(num-1) if __name__ == '__main__': n = int(input()) print(factorial(n)) cs 해설: "재귀함수 끝장내기"의 시작을 알릴 문제이다. 전에 푼 적이 있어 쉽게 풀었다. n x (n-1) x (n-2) x ... 1을 재귀 함수를 이용하여 풀이하면 된다. ..
연결 리스트를 뒤집어라. 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, ..
우선 이 예를 보자. a = [ 1 , 2 , 3] b = a 1 2 3 4 5 6 7 >>> a = [1,2,3] >>> b = a >>> b[0] = 10 >>> b [10, 2, 3] >>> a [10, 2, 3] cs a를 b에 할당할 경우 b를 통해 리스트의 요소를 변경하면 a의 리스트 또한 변경이 되는 것을 알 수 있다. 하지만 이것은 그저 [ 1 , 2 , 3 ]이란 데이터를 a가 가리키고 있을 뿐이고 b는 a와 같은 것을 가리키게 되어서 리스트의 값을 변경했을 때 저런 결과가 나타나는 것이다. 이제 본론으로 들어가 보자. 연결 리스트 rev와 slow가 있다고 하자. rev = 1, slow = 2->3이라 가정해보면 rev, rev.next, slow = slow, rev, slow.ne..

연결 리스트가 팰린드롬 구조인지 판별하라 팰린드롬 : 이름을 거꾸로 뒤집어도 처음과 같은 문자. 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 해설: 리스트 하나를 생성하고 연결 리스트의 값들을 일일히 리스트에 추가했다. 이렇게 하는 이유는 문제 특성상 앞과 뒤를 비교해야 하는데 연결 리스트는 원하는 위치를 자유롭..