| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- 백준
- Python
- BFS
- popleft
- DP
- 소수찾기
- 파이썬
- mvc
- 연관관계
- deque
- appendleft
- 1일1솔
- c#
- 프로그래머스
- python3
- 누적합
- Java
- 브루투포스
- pypy3
- 합 구하기
- 우선순위큐
- unity
- C#강의
- 인프런
- 소수판별
- JPA
- 그리디 알고리즘
- 완전탐색
- spring
- LCM
- Today
- Total
목록전체 글 (139)
jae_coding
문제 문제 링크 문제 접근 BFS N x M 크기의 보드와 4개의 버튼으로 이루어진 게임 버튼은 상하좌우 4가지가 있다. 버튼을 누르면 두 동전이 버튼에 쓰여있는 방향으로 동시에 이동한다. 1. 벽이면 동전은 이동하지 않는다 2. 이동하려는 칸에 칸이 없으면 동전은 떨어진다 3. 그 외의 경우에는 원하는 방향으로 이동한다. 두 동전 중 하나만 보드에서 떨어뜨리기 위해 버튼을 최소 몇번 눌러야 할까? o: 동전 .: 빈 칸 #: 벽 동전의 개수는 항상 2개 10번 이상의 버튼클릭을 할 경우 -1출력 코드 import sys from collections import deque def BFS(board, coins_location): d = [(-1, 0), (0, -1), (1, 0), (0, 1)] co..
문제 문제 링크 문제 접근 DFS 백트레킹 itertool 모듈을 사용하지 않는 조합문제 코드 import sys N, M = map(int, sys.stdin.readline().split()) lst = list(i for i in range(1, N+1)) result = list() def DFS(): global result, lst, N, M if len(result) == M: print(*result) return for i in range(0, N): if lst[i] not in result: result.append(lst[i]) DFS() result.pop() DFS() 느낀점 itertool을 사용하면 쉽지만 중복되지 않는 조합을 구하는 코드를 구현해보는 것도 쉽지많은 않다.
문제 문제 링크 문제 접근 DFS 백트레킹 itertool 모듈을 사용하지 않는 오름차순 조합문제 코드 def DFS(idx): global result, lst, N, M if len(result) == M: temp = 0 for i in result: if temp < i: temp = i else: temp = -1 break if temp != -1: print(*result) return for i in range(idx, N): if lst[i] not in result: result.append(lst[i]) DFS(idx + 1) result.pop() DFS(0) 느낀점 itertool을 사용하면 쉽지만 중복되지 않는 조합을 구하는 코드를 구현해보는 것도 쉽지많은 않다.