dfs 7

99클럽 코테 스터디 8일차 TIL 백트래킹(양과 늑대)

https://school.programmers.co.kr/learn/courses/30/lessons/92343 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 사용 알고리즘DFS, 백트래킹 아이디어1. 리스트에 현 노드의 자식 노드를 탐색해 나감.2. 양 3.  양 > 늑대를 만족하는 경우를 우선 탐색하면서 이전에 탐색하지 못했던 노드 재탐색.4. 최대 양의 수 갱신 제출코드import java.util.*;class Solution { static int len; static int maxAns; static List[] list; public static voi..

[BOJ] 2615 오목 (Java)

https://www.acmicpc.net/problem/2615 처음에 문제 읽고 설계했던 방식은 다음과 같다.1. 모든 바둑돌의 좌표를 구조체를 만들어 바둑돌 색상과 함께 큐에 저장한다.2. 하나씩 꺼내면서 dfs로 8방 탐색을 한다.3. 범위를 벗어나거나 방문했거나 다른 바둑돌 색상을 만나지 않고, 같은 바둑돌 색이면 cnt+1을 한다.4. 범위를 벗어나거나 방문했거나 다른 바둑돌 색상을 만나면 cnt를 확인해서 5이면 그 때의 시작 좌표를 출력한다.하지만 2-3%에서 틀렸고, 좌표를 찍어보며 수정하는 과정에서 엄청나게 많은 허점이 있음을 깨달았다. 1번 허점)그냥 큐에 저장하면 안됐다. 처음엔 위에서 아래로 배열을 탐색하기 때문에 조건을 만족한다고 생각했는데,반례를 보면서 만약 바둑돌이 왼쪽 아래..

코테/백준 2024.11.22

99클럽 코테 스터디 24일차 TIL 완전탐색(전력망을 둘로 나누기)

https://school.programmers.co.kr/learn/courses/30/lessons/86971 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr  모든 전선들 중 하나를 차례대로 끊어보면서 각각의 송전탑의 차이를 구했다. 1. j번째 전선 끊고 전력망 연결for(int j=0; j 2. 어느 하나의 노드에 연결되어 있는 송전탑 개수 계산public static void dfs(int x){ visited[x] = true; for(int i=0; i 3. 두 전력망 송전탑의 개수 차의 최솟값 갱신 (cnt, (n-cnt) 차의 절댓값)// 두 전력망의 송전탑 차의 최솟값 갱신answer..

99클럽 코테 스터디 11일차 TIL DFS(Yes or yes)

https://www.acmicpc.net/problem/25195 주어진 필수 조건은 단방향, 1번에서 출발이다.DFS로 가다가 방문했던 노드나 팬클럽이 있는 노드가 있으면 지나지 않고 진행한다.팬클럽 노드를 제외하고 방문했으면 어떻게든 만나지 않고 가는 것이니 yes, 아니면 Yes를 출력한다-> 그리고 이를 '팬클럽노드 수 s + 방문한 노드 수 = 총 노드 수' 라고 조건 걸었다하지만 이렇게 하니 예제를 넣었을 때 출력 값이 틀리게 나왔다.주어진 본문 예제가 아닌 예제 2번을 만족하지 않았다. 예제 2번을 해석해보니 '여행이 끝났다' 라는 말이 해당 노드에서 이동할 수 있는 노드가 없는 경우 라는 것을 깨달았다.양방향이 아닌 단방향 노드이니 당연히 모든 노드를 방문했을 때 여행이 끝나는 것이 아니..

코테/백준 2024.11.07

99클럽 코테 스터디 7일차 TIL DFS(모음사전)

https://school.programmers.co.kr/learn/courses/30/lessons/84512 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제를 읽으면서 든 생각은 순열, 조합, 부분집합, DFS 어쨌든 재귀로 풀어야겠다고 생각했다문자열을 재귀에 담아 만들면서 돌리고, 원하는 문자가 나왔을 때 그때까지의 번호를 return 하는 형식.총 길이가 5이므로, 5까지만 만들고 되돌리고를 반복하면 된다.몇번째인지를 담는 변수는 함수에 넣으면 안됨!문자가 5를 넘어가면 안되니 5에서 return 조건 걸고, 5가 되기 전에 주어진 단어가 나올 수 있으니 이때도 return 조건문을 걸어줬..

99클럽 코테 스터디 4일차 TIL DFS(알고리즘 수업 - 깊이 우선 탐색 1)

https://www.acmicpc.net/problem/24479 자칭 DFS, BFS 기계로서,, 문제 읽고 10분만에 구현 끝냈는데,, 제출하니 1초만에 틀렸다고 나왔다,,아무리 이것저것 테케 넣어봐도 맞는데,, 하다가 발견했다 내가 문제를 잘못 이해했다는 것을,,!!!말 그대로 방문순서를 저장했었어야 했는데 나는 DFS 재귀에 cnt 넣어서 시작점으로부터 거리가 얼마나 떨어져 있는 지를 저장하고 있었음,,무튼 이거 제외하면 단순 DFS 구현 문제였다!다만, 오름차순 정렬만 주의 하면 된다. 아래가 제출 코드(정답)이고,package STUDY;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamRead..

코테/백준 2024.10.31