본문 바로가기

코테/DFS, BFS7

[java] 프로그래머스 스쿨 문자사전 풀이 1. A, E, I, O, U를 순서대로 저장한 배열 words을 생성한다. - 이때, 어디에서든지 접근할 수 있도록 static으로 선언한다 2. 문자사전에 모든(?) 문자열을 저장할 수 있도록 words라는 리스트를 생성한다 - 이때, 어디에서든지 접근할 수 있도록 static으로 선언한다 3. dfs함수를 선언한다 - 파라미터로 전달된 문자 word를 words에 저장한다. - 파라미터로 전달된 words의 인덱스 depth가 5이면 (즉, U로 이루어진 문자가 끝나면) return - 반복문을 사용하여 word에 알파벳을 하나씩 더하고, depth에 1을 더해서 다시 dfs를 호출한다 - answer는 찾으려는 문자 word의 words내 인덱스 값이다 회고 - 완전탐색으로 안풀고 수학적으로.. 2023. 12. 27.
[java] 프로그래머스스쿨 연습문제 Lv.2 DFS 문제 모음 1. 무인도 여행 코딩테스트 연습 - 무인도 여행 | 프로그래머스 스쿨 (programmers.co.kr) 풀이 1. 깊이 우선 탐색(DFS) 아이디어를 활용한다. 2. 전역변수로 배열 dx, 배열 dy, 2차원 배열 map, 2차원 배열 visited, 정수형 변수 row, col, cnt=0을 선언한다. 3. maps의 원소들을 한글자씩 정수로 바꿔 map에 복사한다. 3-1. 만약 X라면 -1을 저장한다. 4. answer을 리스트로 선언한다. 5. dfs라는 함수를 생성한다. 5-1. 현재 위치에서 이동할 수 있는 인접한 위치로 이동해가며 cnt에 값을 더한다. 5-2. 이동할 수 있는 곳이 더이상 없다면 cnt를 반환한다. 6. 반복문을 통해 map[행][열]의 값이 -1이 아니고 방문한 적이 .. 2023. 4. 28.
[C/C++] 나동빈 미로 탈출, BFS 보호되어 있는 글 입니다. 2023. 3. 26.
[C/C++] 나동빈 음료수 얼려먹기, DFS 보호되어 있는 글 입니다. 2023. 3. 26.
[C/C++] DFS, BFS 1. DFS(Depth First Search, 깊이 우선 탐색) (1) 깊이 우선 탐색이란? : 여러 개의 노드(node)가 간선(edge)으로 연결되어 있는 그래프(graph)에서 탐색을 진행하고자 할 때, 처음 탐색을 시작할 노드와 가장 가까운 노드를 방문한 후, 새로 방문한 노드와 가장 가까운 노드로 깊이 들어가는 방식이다. 한 노드에서 이동할 수 있는 여러 가지 노드를 한번씩 방문하는 것이 아니라, 가장 가까운 노드가 있다면 그 노드로 이동한 후 또 그 노드와 가장 가까운 노드로 또 이동하는 과정을 반복하는 것이다. 한 번 방문한 노드는 방문 표시를 하며 후에 거쳐갈 수는 있어도 다시 방문하지는 않는다. 탐색 시작 위치와 방향이 정해지지 않았다면 일반적으로 오름차순으로 이동하면 된다. (2) 기.. 2023. 3. 24.
[C/C++] 백준 1012, DFS 1012번: 유기농 배추 (acmicpc.net) 1012번: 유기농 배추 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 www.acmicpc.net strategy 1. connected component를 찾는 문제입니다 (1) cc_cnt라는 변수를 생성하여 connecte component를 탐색합니다 2. map[1000][1000]배열에 배추의 위치를 표시합니다 (1) 배추가 있는 곳=1 (2) 배추가 없는 곳=0 3. 배추A와 인접한 배추는 해당 배추A의 상, 하, 좌, 우에 위치한 것입니다 (1) 상, 하, 좌, 우는 x좌표 또는 y좌표에 1을 더하거나 뺀 .. 2022. 12. 9.