백준 10451 "텀 프로젝트" (JAVA)
·
알고리즘(JAVA)
🔍 문제링크https://www.acmicpc.net/problem/9455📌 문제 요약각 학생들은 프로젝트 팀을 구성할 때,자신이 원하는 단 한 명의 학생만 선택할 수 있다.팀을 이루는 경우는 사이클(Cycle)이 형성된 경우이다.팀을 이루지 못한 학생의 수를 출력해야 한다.🛠 풀이 및 알고리즘1️⃣ DFS를 활용한 사이클 탐색각 학생이 가리키는 관계를 DFS를 통해 따라가면서 방문 여부를 체크DFS 탐색 중 방문했던 노드를 다시 방문하면 사이클이 형성된 것2️⃣ 방문 체크(visited)와 종료 체크(finished) 배열 활용`visited[now] = 1` : 현재 학생 방문 체크`finished[now] = 1` : 현재 학생이 속한 탐색이 종료사이클을 확인하는 조건`visited[next..
백준 10451 "순열 사이클" (JAVA)
·
알고리즘(JAVA)
🔍 문제링크https://www.acmicpc.net/problem/10541📌 문제 요약1부터 N까지의 숫자가 하나씩 포함된 순열이 주어질때,  이 순열에서 사이클(Cycle)의 개수를 구하는 문제.🛠 풀이 및 알고리즘1️⃣ DFS를 활용한 순열 사이클 탐색각 숫자가 가리키는 연결 관계를 따라가며 DFS 탐색 수행방문한 노드는 다시 방문하지 않도록 체크 (visited[])DFS 탐색을 수행하다가 이미 방문한 노드를 만나면 사이클이 형성됨 → 사이클 개수 증가2️⃣ 사이클을 찾는 과정`nums[i]`를 따라가며 방문한 적 없는 곳을 탐색DFS 탐색을 수행하다가 이미 방문한 노드를 만나면 사이클 형성 → ans++ 증가💡 코드public class Baekjoon_10451 { static ..
백준 1167 "트리의 지름" (JAVA)
·
카테고리 없음
🔍 문제링크https://www.acmicpc.net/problem/1167📌 문제 요약트리의 지름: 트리에서 가장 긴 경로의 길이.정점이 순서대로 주어진다는 보장이 없음.DFS 2번 사용하여 트리의 지름을 구함:임의의 정점에서 가장 먼 정점을 찾음.이 정점에서 가장 먼 정점까지의 거리가 트리의 지름.🛠 풀이 및 알고리즘그래프 입력을 인접 리스트로 저장정점의 개수(v)를 입력받고, 각 정점에 연결된 노드 정보를 저장.입력이 순서대로 주어지지 않기 때문에 인접 리스트 활용.DFS 1회 실행임의의 정점에서 가장 먼 정점(maxNode)을 찾음.visited[] 배열을 활용하여 탐색.DFS 2회 실행maxNode에서 가장 먼 정점까지의 거리(temp)를 구함 → 트리의 지름.💡 코드public clas..
백준 24268 "2022는 무엇이 특별할까" (JAVA)
·
알고리즘(JAVA)
🔍 문제링크https://www.acmicpc.net/problem/24268📌 문제 요약N보다 크면서 d진법으로 변환했을 때 각 자리 숫자가 한 번씩만 등장하는 가장 작은 수를 찾아 10진법으로 출력.만약 존재하지 않으면 -1 출력🛠 풀이 및 알고리즘가능한 최댓값 계산d진법에서 가장 큰 d자리 숫자(d-1부터 0까지)를 구함.N이 이 값보다 크면 -1 출력.백트래킹(DFS)으로 순열 생성d자리 숫자를 만들어야 하므로 d자리 순열을 생성.visited[]를 활용해 중복 숫자 방지.숫자 크기 비교 및 변환생성된 숫자가 N보다 크면 10진법으로 변환하여 출력.가장 작은 값을 찾으면 즉시 System.exit(0);으로 프로그램 종료.💡 코드public class Baekjoon_24268 { s..
5jeong
'dfs' 태그의 글 목록