일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- dfs #python #leetcode
- 아스테리스크 #Asterisk #파이썬
- dfs #leetcode #python
- 백준 #파이썬 #bfs #백트래킹 #1697 #숨바꼭질
- exoplayer #mediaplayer #엑소플레이어 #안드로이드 #android
- dfs #bfs #leetcode #python
- 코틀린 #Do it #깡샘 #안드로이드
- dfs #python #leetcode #combination
- 리트코드 #팰린드롬 #파이썬
- 다익스트라 #알고리즘 #bfs #그리디 #다이나믹프로그래밍 #leetcode #python
- leetcode #python #dfs #재귀
- dfs #leetcode #python #graph #그래프
- context #android #getApplicationContext #activity #생명주기 #lifecycle
- gcd #최대공약수 #백준 #2981 #검문
- 2004 #조합 0의 개수 #백준
- leetcode #subsets #dfs #itertools #python
- AsyncTask #doinbackground #스레드 #thread #android #안드로이드
- Python #leetcode #dfs #그래프 #백트래킹
- final #java #자바 #안드로이드
- python #백준 #2580 #스도쿠 #dfs #백트래킹
- dfs #bfs #트리구조 #이진트리 #leetcode #파이썬 #python
- handler #looper #thread #runnable #핸들러 #루퍼 #스레드 #러너블
- dfs #이진트리 #트리구조 #직렬화 #역직렬화 #파이썬 #리트코드 #leetcode #python
- dfs #bfs #이진트리 #파이썬 #리트코드
- dfs #bfs #트리구조 #이진트리 #leetcode #python #파이썬
- 다익스트라 #dijkstra #leetcode #파이썬 #python #algorithm #787
- 해시테이블 #heapq #파이썬 #리트코드 #알고리즘
- dfs #그래프 #graph #python #leetcode #course #schedule
- 파이썬 #zip
- python #백준 #9375 #패션왕 #신해빈
- Today
- Total
목록Algorithm Study (61)
멋진 개발자가 되고 싶다
해설: 단순하게 math 라이브러리에서 factorial 써서 풀었다간 m과 n에서 20억 들어와 버리면 시간 초과로 아웃됨. 관건은 끝자리가 0이 되려면 저 계산값이 10의 몇 제곱인지를 알아야 함. 더 자세히 말하자면 2*5의 몇 제곱인지 알면 됨. 그렇담 몇 제곱인지 어떻게 세느냐. 우선 2의 배수에는 2가 하나씩 있을거 아님? 예를 들어 8! 에서 2의 배수는 2,4,6,8 총 4개니까 2의 4 제곱이 일단 확보된 거고 4의 배수는 4,8 총 2개니까 2의 2 제곱이 확보된 거임. 8의 배수는 8 총 1개니까 2의 1 제곱이 확보됨. 총 더해보면 2^(4+2+1)이 8! 을 구성하고 있다고 보면 돼! 5의 배수도 예를 들어볼까? 100! 가 5의 몇 제곱인지 알아보자. 5의 배수는 5,10,15,..
문제 해빈이는 패션에 매우 민감해서 한번 입었던 옷들의 조합을 절대 다시 입지 않는다. 예를 들어 오늘 해빈이가 안경, 코트, 상의, 신발을 입었다면, 다음날은 바지를 추가로 입거나 안경 대신 렌즈를 착용하거나 해야 한다. 해빈이가 가진 의상들이 주어졌을 때 과연 해빈이는 알몸이 아닌 상태로 며칠 동안 밖에 돌아다닐 수 있을까? 입력 첫째 줄에 테스트 케이스가 주어진다. 테스트 케이스는 최대 100이다. 각 테스트 케이스의 첫째 줄에는 해빈이가 가진 의상의 수 n(0 ≤ n ≤ 30)이 주어진다. 다음 n개에는 해빈이가 가진 의상의 이름과 의상의 종류가 공백으로 구분되어 주어진다. 같은 종류의 의상은 하나만 입을 수 있다. 모든 문자열은 1 이상 20 이하의 알파벳 소문자로 이루어져 있으며 같은 이름을 ..
문제 트럭을 타고 이동하던 상근이는 경찰의 검문을 받게 되었다. 경찰은 상근이가 운반하던 화물을 하나하나 모두 확인할 것이기 때문에, 검문하는데 엄청나게 오랜 시간이 걸린다. 상근이는 시간을 때우기 위해서 수학 게임을 하기로 했다. 먼저 근처에 보이는 숫자 N개를 종이에 적는다. 그 다음, 종이에 적은 수를 M으로 나누었을 때, 나머지가 모두 같게 되는 M을 모두 찾으려고 한다. M은 1보다 커야 한다. N개의 수가 주어졌을 때, 가능한 M을 모두 찾는 프로그램을 작성하시오. 입력 첫째 줄에 종이에 적은 수의 개수 N이 주어진다. (2 ≤ N ≤ 100) 다음 줄부터 N개 줄에는 종이에 적은 수가 하나씩 주어진다. 이 수는 모두 1보다 크거나 같고, 1,000,000,000보다 작거나 같은 자연수이다. ..
문제 스도쿠는 18세기 스위스 수학자가 만든 '라틴 사각형'이랑 퍼즐에서 유래한 것으로 현재 많은 인기를 누리고 있다. 이 게임은 아래 그림과 같이 가로, 세로 각각 9개씩 총 81개의 작은 칸으로 이루어진 정사각형 판 위에서 이뤄지는데, 게임 시작 전 일부 칸에는 1부터 9까지의 숫자 중 하나가 쓰여 있다. 나머지 빈 칸을 채우는 방식은 다음과 같다. 각각의 가로줄과 세로줄에는 1부터 9까지의 숫자가 한 번씩만 나타나야 한다. 굵은 선으로 구분되어 있는 3x3 정사각형 안에도 1부터 9까지의 숫자가 한 번씩만 나타나야 한다. 위의 예의 경우, 첫째 줄에는 1을 제외한 나머지 2부터 9까지의 숫자들이 이미 나타나 있으므로 첫째 줄 빈칸에는 1이 들어가야 한다. 또한 위쪽 가운데 위치한 3x3 정사각형의 ..
문제 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 때 걷는다면 1초 후에 X-1 또는 X+1로 이동하게 된다. 순간이동을 하는 경우에는 1초 후에 2*X의 위치로 이동하게 된다. 수빈이와 동생의 위치가 주어졌을 때, 수빈이가 동생을 찾을 수 있는 가장 빠른 시간이 몇 초 후인지 구하는 프로그램을 작성하시오. 입력 첫 번째 줄에 수빈이가 있는 위치 N과 동생이 있는 위치 K가 주어진다. N과 K는 정수이다. 출력 수빈이가 동생을 찾는 가장 빠른 시간을 출력한다. 해설: 아... 가지치기하다가 숨 막혀 죽을 뻔.. 이 문제는 BFS..
K부터 출발해 모든 노드가 신호를 받을 수 있는 시간을 계산하라. 불가능할 경우 -1을 리턴한다. 입력값 (u, v, w)는 각각 출발지, 도착지, 소요 시간으로 구성되며, 전체 노드의 개수는 N으로 입력받는다. example: Input: times = [[2,1,1], [2,3,1], [3,4,1]], n = 4, k = 2 Output: 2 ** 깔끔한 풀이 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 class Solution: def networkDelayTime(self, times, n: int, k: int) -> int: graph = collections.defaultdict(list..
0을 완료하기 위해서는 1을 끝내야 한다는 것을 [0,1] 쌍으로 표현하는 n개의 코스가 있다. 코스 개수 n과 이 쌍들을 입력으로 받았을 때 모든 코스가 완료 가능한지 판별하라. Example: Input: numCourses = 2, prerequisites = [[1,0]] Output: true ** 깔끔한 풀이 ** 1. DFS로 순환 구조 판별 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 class Solution: def canFinish(self, numCourses: int, prerequisites: List[List[int]]) -> bool: graph = collections.defaul..
[from, to]로 구성된 항공권 목록을 이용해 JFK에서 출발하는 여행 일정을 구성하라. 여러 일정이 있는 경우 사전 어휘 순(Lexical Order)으로 방문한다. example: Input: tickets = [["MUC", "LHR"], ["JFK", "MUC"], ["SFO", "SJC"], ["LHR", "SFO"]] Output: ["JFK", "MUC", "LHR", "SFO", "SJC"] ** 깔끔한 풀이 ** 1. DFS로 일정 그래프 구성 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 class Solution: def findItinerary(self, tickets): graph = collections.defaultdict(list) # 그래프 ..