일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 백준 19238
- Kotlin
- 백준 파이썬
- spring security
- JPA
- JVM
- spring oauth
- Spring Boot
- spring cloud
- sql 기술면접
- 프로그래머스
- 백준 17626
- 백준 15685
- MSA
- 웹어플리케이션 서버
- Spring
- java
- springboot
- re.split
- MySQL
- Coroutine
- java 기술면접
- 파이썬
- 백준 16719
- 백준
- 백준 16236
- 백준 16235
- 프로래머스
- with recursive
- 백준 17779
- Today
- Total
목록알고리즘/Programmers (83)
시작이 반
result = list() def solution(begin, target, words): global result answer = 0 if target not in words: return 0 elif target == begin: return 0 visited = [False] * len(words) dfs(begin, target, words, visited, answer) return min(result) def dfs(begin, target, words, visited, answer): global result if begin == target: return result.append(answer) change = list() for word in words: #바꿀수 있는 단어 찾기 coun..
dfs, bfs를 사용하여 풀수있다. dfs로 문제를 해결하였다. dfs가 끝난이후 해당 node를 방문했는지 확인하고 그룹수를 증가시킨다. visited = list() def solution(n, computers): global visited visited = [False] * n answer = 0 for i in range(n): if not visited[i]: dfs(n, computers, i) answer += 1 return answer def dfs(n, computers, start): global visited, count visited[start] = True for i in range(n): if computers[start][i] == 1 and not visited[i]: ..
재귀 문제이다. dfs로 문제를 풀었다. 한 숫자에 대해서 양수 or 음수를 더할수 있다. 마지막 depth에 도달했을때 target과 같으면 count 를 증가시킨다. count = 0 def solution(numbers, target): dfs(numbers, target, 0, 0) return count def dfs(numbers, target, depth, result): global count if depth == len(numbers): if result == target: count += 1 return left = result - numbers[depth] right = result + numbers[depth] dfs(numbers, target, depth+1, left) dfs(..