- 알고리즘 공부
- 프로그래머스 고득점 kit
- programmers
- dp 알고리즘
- 프로그래머스 전화번호 목록 파이썬
- 백준 다이나믹프로그래밍
- 백준 dp
- 백준
- 장고
- 프로그래머스 level1
- 코테
- 알고리즘 문제
- 코딩테스트 연습
- Spring 초보
- Django 기초
- 코딩테스트
- 프로그래머스 전화번호 목록 python
- 장고 기초
- 코테 연습
- 백준 바닥장식 python
- 프로그래머스 레벨1
- 바닥장식 파이썬
- 프로그래머스 알고리즘 고득점 kit
- spring 기초
- 프로그래머스 레벨2
- Django
- 프로그래머스
- 스프링 기초
- 전화번호 목록 python
- 스프링 초보
- Today
- Total
목록백준/그래프 탐색 (4)
일일구름 IT
문제 아 일단 코딩을 너무 오랜만에 해서 문법을 다 까먹었다...이제 슬슬 취업준비 시작해야 하니까 다시 코테 준비를 좀 빡세게 해야겠다 처음에는 이 문제를 보고 BFS 탐색 방식을 사용해야하나 ? 라고 생각했다. 방향이 주어지지 않았다면 BFS 방법을 사용하는 것이 맞았을 것이다. 그런데 여기서 '-'는 가로 같은 행, '|'는 같은 열에 인접해 있다면 같은 나무 판자라는 방향을 지정해주었다. 그래서 굳이 BFS을 사용하지 않아도 되겠다는 생각이 들었다. 그리고 인접한 '-' 또는 '|'의 시작이나 중간부분이 아닌 마지막 판자의 개수만 세면 필요한 나무 만자의 개수를 구할 수 있다. 1. 모든 판자 순서대로 for문을 이용해 탐색2. 오른쪽('-') 또는 아래쪽 ('|')에 같은 판자가 있는지 확인3...
문제 https://www.acmicpc.net/problem/18352 18352번: 특정 거리의 도시 찾기 첫째 줄에 도시의 개수 N, 도로의 개수 M, 거리 정보 K, 출발 도시의 번호 X가 주어진다. (2 ≤ N ≤ 300,000, 1 ≤ M ≤ 1,000,000, 1 ≤ K ≤ 300,000, 1 ≤ X ≤ N) 둘째 줄부터 M개의 줄에 걸쳐서 두 개 www.acmicpc.net 이 문제의 알고리즘 분류는 다익스트라이기 때문에 다익스트라 알고리즘을 이용하여 풀려다가 모든 도로의 거리는 1이기 때문에 bfs 알고리즘을 사용해 문제를 풀었다. 내 코드 import sys from collections import deque n, m, k, x = map(int, sys.stdin.readline()..
문제 이 문제는 플로이드 워셜로 분류된 문제이다. 문제를 푸는 과정은 1. 플로이드 워셜 알고리즘을 이용해 모든 경로 저장 2. CIRCLE이 생기는 경우가 언제인지 3. CIRCLE이 생기지만 1의 경로에 포함되는지 여부 위의 과정중에 3번을 고려하지 않아 제출했을때 52%에서 계속 실패가 떴다.. 내 코드 n = int(input()) m = 0 arr = [[0 for col in range(n)] for row in range(n)] for i in range(n-1): m = int(input()) node = map(int, input().split()) for j in node: arr[i][j-1] = 1 for k in range(n): for i in range(n): for j in ..
이미 학교에서 배운 부분이지만 오랜만에 코딩을 하려고 하니 기억이 안났다. DFS, BFS는 다른 문제를 풀기 위해서도기본적이고 중요한 개념라고 생각하여 이 문제를 먼저 풀게 되었다. [문제] 그래프를 DFS로 탐색한 결과와 BFS로 탐색한 결과를 출력하는 프로그램을 작성하시오. 단, 방문할 수 있는 정점이 여러 개인 경우에는 정점 번호가 작은 것을 먼저 방문하고, 더 이상 방문할 수 있는 점이 없는 경우 종료한다. 정점 번호는 1번부터 N번까지이다. [내 코드] # DFS n, m, v = map(int, input().split()) graph = [[] for i in range(n+1)] visited = [False] * (n+1) for j in range(1, m+1): a, b = map(..