b1774. 우주신과의 교감
·
Algorithm & Data Structures/BOJ
https://www.acmicpc.net/problem/1774 🌌 자바로 푸는 우주신과의 교감 문제 풀이 📌 문제 개요 백준 1774번 우주신과의 교감 문제는N개의 신들과 이미 연결된 M개의 통로 정보가 주어졌을 때,모든 우주신이 연결되도록 추가로 연결해야 할 최소 거리의 합을 구하는 문제입니다. 각 우주신은 2차원 좌표 위에 존재이미 연결된 통로는 추가 비용 없이 사용 가능목표는 전체 우주신을 연결하는 최소 비용 💡 예제 입력4 11 12 22 43 31 4 예제 출력2.00 🛠 알고리즘 접근 방식 이 문제는 기존 연결 정보를 고려한 최소 신장 트리(MST) 문제입니다. ✅ 핵심 아이디어 크루스칼 알고리즘을 사용해 거리 기준 오름차순 간선 선택M개의 이미 연결된 통로는 먼저 uni..
b4386. 별자리 만들기
·
Algorithm & Data Structures/BOJ
https://www.acmicpc.net/problem/4386 ✨ 자바로 푸는 별자리 만들기 문제 풀이 📌 문제 개요 백준 4386번 “별자리 만들기”는주어진 N개의 별 좌표를 기반으로 별자리를 만들 때,모든 별을 연결하면서 최소한의 선분 길이 합을 구하는 문제입니다. 즉, 모든 별을 잇되 최소 비용으로 연결하는 구조를 요구하며, 이는 전형적인 최소 신장 트리(MST, Minimum Spanning Tree) 문제입니다. 💡 예제 입력31.0 1.02.0 2.02.0 4.0 예제 출력3.41 🛠 알고리즘 접근 방식 별들 간 거리를 간선으로 보고,이 중에서 가장 적은 거리의 간선들만을 선택해 모든 별을 연결해야 합니다. 이를 위해 프림 알고리즘을 사용합니다.(크루스칼도 가능하지만, 이 코..
b1976. 여행가자
·
Algorithm & Data Structures/BOJ
https://www.acmicpc.net/problem/1976 ✈ 자바로 푸는 여행가자 문제 풀이📌 문제 개요 여행 계획에 따라 여러 도시를 순서대로 방문할 수 있는지 판단하는 문제입니다.도시 간의 연결 여부가 주어지며, 여행 경로에 포함된 모든 도시가 **같은 네트워크(연결된 그룹)**에 있어야 합니다. 1은 도시간 연결을 의미하고 0은 연결이 없음을 의미합니다.Union-Find(Disjoint Set)를 활용하여 각 도시가 같은 그룹에 속하는지 판단하면 됩니다. 💡 예제 입력330 1 01 0 10 1 01 2 3출력:YES 🧠 알고리즘 접근 방식 Union-Find 자료구조를 사용해 도시 간 연결 정보를 하나의 집합으로 병합합니다.여행 계획에 포함된 도시들이 **모두 같은 집합..
b14003. 가장 긴 증가하는 부분수열 5
·
Algorithm & Data Structures/BOJ
https://www.acmicpc.net/problem/14003 📌 자바(Java)로 푸는 가장 긴 증가하는 부분 수열 5 - 백준 14003 🔼LIS + 경로 추적을 O(N log N)으로 해결하는 대표 문제 🔎 문제 개요백준 14003번 - 가장 긴 증가하는 부분 수열 5 문제는수열이 주어졌을 때, 가장 긴 증가하는 부분 수열의 길이해당 부분 수열 자체 를 구하는 문제입니다.단, 수열의 길이가 최대 100만 개이므로 O(N²) 풀이 불가능합니다. 💡 예제 입력610 20 10 30 20 50 💡 예제 출력4 10 20 30 50 🛠 알고리즘 접근 방식 ✅ 핵심 전략: 이진 탐색 기반 LIS + 경로 추적 list[]: 현재까지 만든 LIS 수열 (값만 추적)dp[i]: arr..
b12852. 1로 만들기 2
·
Algorithm & Data Structures/BOJ
https://www.acmicpc.net/problem/12852 📌 자바(Java)로 푸는 1로 만들기 2 - 백준 12852 🔢최소 연산 횟수 + 경로 추적까지 하는 DP 문제! 🔎 문제 개요 백준 12852번 - 1로 만들기 2 문제는정수 N이 주어졌을 때,1로 만들기 위해 사용할 수 있는 연산은 다음 세 가지입니다: X → X / 3 (3으로 나누어떨어질 때만)X → X / 2 (2로 나누어떨어질 때만)X → X - 1 최소 연산 횟수를 출력하고그 경로에 해당하는 숫자 순서도 출력해야 합니다. 💡 예제 입력10 💡 예제 출력310 9 3 1 🛠 알고리즘 접근 방식: Dynamic Programming (DP) ✏️ 핵심 전략 dp[i]: i를 1로 만들기 위한 최소 연산 횟수c..
b3665. 최종순위
·
Algorithm & Data Structures/BOJ
https://www.acmicpc.net/problem/3665   📌 자바(Java)로 푸는 최종 순위 문제 - 백준 3665 🏆🔁 🔎 문제 개요 백준 3665번 - 최종 순위는 위상 정렬(Topological Sort)을 응용하는 문제입니다. 작년 순위가 주어지고,올해 바뀐 순위 정보들이 입력되며,그 정보를 바탕으로 올해의 최종 순위를 결정하는 문제입니다. 단, 순위를 정확히 하나로 정할 수 없다면 ? 출력모순이 발생해서 순위를 정할 수 없다면 IMPOSSIBLE 출력 💡 예제 입력155 4 3 2 122 43 1 💡 예제 출력5 3 2 4 1  🛠 알고리즘 접근 방식 이 문제는 기본 위상 정렬에✔ 순위가 바뀐 간선을 뒤집는 작업(reverse edge)✔ 정점 진입 차수(indegre..
b.2075 N번째 큰 수
·
Algorithm & Data Structures/BOJ
https://www.acmicpc.net/problem/2075   📌 자바(Java)로 푸는 N번째 큰 수 문제 - 백준 2075 🧮 🔎 문제 개요 백준 2075번 - N번째 큰 수 문제입니다.N x N 크기의 행렬이 주어졌을 때, 모든 수를 정렬했을 때 N번째로 큰 수를 구하는 문제입니다. • 단순 정렬로 풀 수 있지만, 효율적인 풀이가 중요합니다. • 메모리 제한과 시간 제한을 고려하면 우선순위 큐 사용이 더 적절합니다. 💡 예제 입력512 7 9 15 513 8 11 19 621 10 26 31 1648 14 28 35 2552 20 32 41 49💡 예제 출력35➡ 모든 수 중 5번째로 큰 수(내림차순 정렬 기준)는 35 🛠 접근 방식 현재 코드는 모든 값을 배열에 넣고 정렬한 뒤 ..
b1956. 운동
·
Algorithm & Data Structures/BOJ
https://www.acmicpc.net/problem/1956   📌 자바(Java)로 푸는 운동 문제 - 백준 1956 🚴‍♂️🔎 문제 개요 백준 1956번 - 운동 문제입니다.V개의 마을과 E개의 도로가 주어졌을 때,“한 마을에서 출발하여 다시 그 마을로 돌아오는 최소 사이클의 길이” 를 구하는 문제입니다.🚴 즉, 최단 사이클(순환 경로)의 길이를 찾는 것이 핵심입니다. 💡 예제 입력3 41 2 13 1 12 3 11 3 5💡 예제 출력3➡ 최단 사이클의 길이가 3인 경우를 찾아 출력 🛠 알고리즘 접근 방식 이 문제를 해결하기 위해 플로이드-워셜 알고리즘(Floyd-Warshall Algorithm) 을 사용합니다. ✏️ 주요 고려 사항 ✔ 모든 정점 간 최단 경로를 계산해야 함✔ 각..