일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 백준 2606
- 냅색
- 타겟 넘버
- 9663
- 백준
- 소수찾기
- 파이썬
- 백준 1535
- dfs
- 2606
- 백준_2178
- 대소비교
- boj 11053
- 미로탐색
- 백준 9252
- 데카르트 곱
- 백준 12015
- 리스트
- 8-queen
- BOJ 2606
- 알고리즘
- 프로그래머스
- BFS
- 증가하는 부분수열 2
- python
- 평범한 배낭
- 12865
- list
- 가장 긴 증가하는 부분수열
- LCS2
- Today
- Total
목록[PS] (22)
Devlog_by_0giru
# 알파벳 https://www.acmicpc.net/problem/1987 import sys from string import ascii_uppercase sys.setrecursionlimit(10000) R, C = map(int, input().split()) graph = [] rest = list(ascii_uppercase) count = 0 max_count = 0 dx = [-1, 1, 0, 0] dy = [0, 0, -1, 1] for _ in range(R): read = sys.stdin.readline().rstrip() graph.append(read) def Search(par_x, par_y): global count global max_count count += 1 if ..
dfs를 통해 배추의 묶음을 판단하는 문제이다. 2667번 단지번호 붙이기와 문제의 접근법이 완전히 동일하게 dfs로 접근하면 어렵지 않게 풀 수 있다. 다른점이 있다면, 이 문제는 여러 테스트 케이스에 대해서 다르게 출력할 수 있게 따로 설정해 주어야 한다는 점이다. # 유기농 배추 import sys sys.setrecursionlimit() def dfs(par_y, par_x): if par_x >= M or par_y >= N or par_x
# 테스트 케이스 2 통과 / 실패 def solution(tickets): nation_num = len(tickets) graph = [] graph_new = [] result = [] for inf in tickets: graph.append([inf[0]]) for inf in tickets: for i in range(nation_num): if inf[0] == graph[i][0]: graph[i].append(inf[1]) for inf in graph: if inf not in graph_new: graph_new.append(inf) for inf_new in graph_new: temp1 = inf_new[0] inf_new.sort() temp2 = inf_new.index(tem..
그래프를 순회하는 대표적인 문제라고 생각한다. 격자(테이블) 형태의 그래프를 위 아래로 탐색해가며 같은 군집(?)을 결정하는 문제이다. 이 문제 또한 나동빈 저자의 '이것이 코딩 테스트다' 책의 예제 코드를 이용하였다. dfs 알고리즘을 통해 이어진 노드를 탐색하고 그 개수만큼을 리스트에 담아 출력하는 문제이다. 여담이지만, 효율적인 코딩테스트 공부를 위해 이렇게 책의 코드를 적극적으로 활용해 시간을 절약하는 좋은 것인지...아니면 나름대로의 고민을 하며 인고의 시간을 보내는 것이 좋은 것인지는 잘 모르겠다... # 단지번호 붙이기 N = int(input()) graph = [] list_num = [] count = 0 for _ in range(N): graph.append(list(map(int,..
# 바이러스 from collections import deque # N은 노드의 개수 # M은 노드가 연결된 정보의 입력 횟수 N = int(input()) M = int(input()) # BFS알고리즘 활용을 위해 collections 모듈의 deque를 활용 queue = deque() result = [] # 0번 인덱스는 활용하지 않고, 방문 여부를 체크해 줄 리스트 생성. 초기에는 모두 False이다. visited = [False] * (N+1) # 전체 그래프를 표현하기 위한 빈 리스트 생성 graph = [[] for _ in range(N+1)] # 입력 정보를 이용해 그래프 생성을 위한 for 루프 for _ in range(M): i, j = map(int, input().spli..
from collections import deque # dfs 함수 def dfs(par_graph, par_v, par_visited): visited[par_v] = True result_dfs.append(par_v) for i in par_graph[par_v]: if not visited[i]: dfs(par_graph, i, par_visited) #bfs 함수 def bfs(par_graph, par_v, par_visited): visited[par_v] = True queue.append(par_v) while queue: v = queue.popleft() result_bfs.append(v) for i in par_graph[v]: if not visited[i]: queue.app..