b9372. 상근이의 여행
·
Algorithm & Data Structures/BOJ
https://www.acmicpc.net/problem/9372 🛫 자바로 푸는 상근이의 여행 문제 풀이 📌 문제 개요 백준 9372번 “상근이의 여행” 문제는N개의 국가와 M개의 비행기 노선이 주어졌을 때,모든 국가를 방문할 수 있는 최소한의 비행기 수를 구하는 문제입니다. 비행 노선은 양방향(왕복)입니다.주어진 국가와 노선들은 항상 연결 그래프를 이룹니다.중요한 조건은 “직접 연결된 비행기만 타는 것이 아니라, 경유도 가능“하다는 점입니다. 💡 예제 입력23 31 22 31 35 42 12 34 34 5 예제 출력24 🛠 알고리즘 접근 방식 이 문제는 사실상 그래프 이론 문제이며,그래프가 연결되어 있다는 전제 하에, 모든 노드를 방문하려면 필요한 간선 수는 다음과 같습니다: ✅ 핵..
SQL_20250508
·
DB/SQL
🌫️ 수원 지역 연도별 평균 미세먼지 농도 – 쿼리 분석SELECT EXTRACT(YEAR FROM YM) AS YEAR, ROUND(AVG(PM_VAL1), 2) AS PM10, ROUND(AVG(PM_VAL2), 2) AS 'PM2.5'FROM AIR_POLLUTIONWHERE LOCATION2 = '수원'GROUP BY EXTRACT(YEAR FROM YM)ORDER BY YEAR; ✅ EXTRACT(YEAR FROM YM) YM에서 연도만 추출GROUP BY와 SELECT에 동일하게 사용해 연도별 집계 수행 ✅ ROUND(AVG(PM_VAL1), 2) 미세먼지(PM10)의 평균값을 소수 둘째 자리까지 반올림AVG()는 집계 함수, ROUND(..., 2)로 정밀도 조..
b4195. 친구네트워크
·
Algorithm & Data Structures/BOJ
https://www.acmicpc.net/problem/4195 👥 자바로 푸는 친구 네트워크 문제 풀이 📌 문제 개요 백준 4195번 - 친구 네트워크 문제는여러 명이 친구 관계로 연결될 때,각 관계마다 현재 친구 네트워크의 크기를 출력하는 문제입니다. 친구 관계가 주어짐 (A B → A와 B가 친구)친구 관계가 생길 때마다, A와 B가 속한 전체 네트워크(연결된 집합)의 크기를 출력이름은 문자열로 주어짐 💡 예제 입력23Fred BarneyBarney BettyBetty Wilma3Fred BarneyBetty WilmaBarney Betty 예제 출력2 3 4 2 2 4 🛠 알고리즘 접근 방식 핵심은 Union-Find (Disjoint Set) 알고리즘이름이 문자열이기..
SQL_20250506
·
DB/SQL
💰 5월 식품들의 총매출 조회하기 – 쿼리 분석SELECT FD.PRODUCT_ID, FD.PRODUCT_NAME, SUM(FD.PRICE * FO.AMOUNT) AS TOTAL_SALESFROM FOOD_ORDER FOJOIN FOOD_PRODUCT FD ON FO.PRODUCT_ID = FD.PRODUCT_IDWHERE FO.PRODUCE_DATE BETWEEN '2022-05-01' AND '2022-05-31'GROUP BY FD.PRODUCT_ID, FD.PRODUCT_NAMEORDER BY TOTAL_SALES DESC, FD.PRODUCT_ID ASC; ✅ JOIN … ONJOIN FOOD_PRODUCT FD ON FO.PRODUCT_ID =..
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 자료구조를 사용해 도시 간 연결 정보를 하나의 집합으로 병합합니다.여행 계획에 포함된 도시들이 **모두 같은 집합..
b1717. 집합의 표현
·
Algorithm & Data Structures/BOJ
https://www.acmicpc.net/problem/1717 🧩 자바로 푸는 집합의 표현 문제 풀이 📌 문제 개요 백준 1717번 집합의 표현 문제는 Disjoint Set(서로소 집합) 자료구조의 기본 동작인 Find와 Union을 구현하는 대표적인 문제입니다. 연산 종류0 a b : a와 b가 속한 집합을 합친다.1 a b : a와 b가 같은 집합에 포함되어 있는지 확인한다. 💡 예제 입력7 80 1 31 1 70 7 61 7 10 3 70 4 20 1 11 1 1예제 출력:NONOYES 🧠 알고리즘 접근 방식 핵심은 Union-Find 알고리즘입니다.각 원소는 자신이 속한 집합의 대표(parent)를 가리킵니다.find(x)를 통해 대표를 찾고, union(x, y)를 통해..
b4803. 트리
·
Algorithm & Data Structures/BOJ
https://www.acmicpc.net/problem/4803 📌 자바(Java)로 푸는 트리 - 백준 4803 🌳사이클 탐지 + 연결 요소(트리) 개수 구하기 (Union-Find) 🔎 문제 개요 백준 4803 - 트리 문제는, 주어진 그래프에서 사이클이 없는 연결 요소(트리)를 찾아야 하는 문제입니다.하나의 그래프 안에 여러 개의 트리가 있을 수 있으며,사이클이 있는 연결 요소는 트리로 취급하지 않습니다. 💡 예제 입력6 31 22 35 66 52 10 0 💡 예제 출력Case 1: A forest of 2 trees.Case 2: No trees. 🛠 알고리즘 접근 방식 이 문제는 전형적인 Union-Find(Disjoint Set) 알고리즘에✔ 사이클 감지를 덧붙이는 문제입니..
b2263. 트리의 순회
·
Algorithm & Data Structures/BOJ
https://www.acmicpc.net/problem/2263 📌 자바(Java)로 푸는 트리의 순회 - 백준 2263 🌲 Inorder + Postorder → Preorder 복원하기 🔎 문제 개요 백준 2263 - 트리의 순회 문제는, 이진 트리의 Inorder(중위 순회) 와 Postorder(후위 순회) 결과가 주어질 때,이진 트리의 Preorder(전위 순회) 결과를 출력하는 문제입니다.💡 예제 입력32 1 32 3 1 💡 예제 출력1 2 3 🛠 알고리즘 접근 방식 이 문제는 트리를 직접 복원하지 않고,✔ 순회 결과만을 이용해 바로 Preorder를 만들어내는 것이 핵심입니다. 📌 트리 순회의 특징 이해하기순회 방법순서Preorder(전위 순회)루트 → 왼쪽 → 오른쪽In..
b11780. 플로이드 2
·
Algorithm & Data Structures/BOJ
https://www.acmicpc.net/problem/11780 📌 자바(Java)로 푸는 플로이드 2 - 백준 11780 🛣️최단 거리 + 경로 출력까지 포함한 플로이드 워셜(Floyd-Warshall) 🔎 문제 개요 백준 11780 - 플로이드 2는모든 도시 쌍에 대해 최단 경로의 거리를 구하는 것뿐만 아니라,각 최단 경로를 직접 경로로 출력하는 문제입니다. 💡 예제 입력5141 2 21 3 31 4 1... 💡 예제 출력0 2 3 1 1002 1 23 1 32 1 4... 🛠 알고리즘 접근 방식 이 문제는 전형적인 Floyd-Warshall (플로이드-워셜) 알고리즘에✔ 경로 추적까지 덧붙이는 구조입니다. costs[i][j]: 도시 i에서 j까지의 최소 비용lists[i][j..
b13913. 순간이동 4
·
Algorithm & Data Structures/BOJ
📌 자바(Java)로 푸는 숨바꼭질 4 - 백준 13913🧍‍♂️➡️🧍‍♀️ 최소 시간 + 이동 경로까지 출력하는 BFS 문제! 🔎 문제 개요 백준 13913번 - 숨바꼭질 4는정수 N(수빈이 위치)에서 K(동생 위치)까지다음 세 가지 연산으로 이동해 최소 시간을 구하는 문제입니다. X - 1X + 1X * 2 뿐만 아니라,✔ 최단 시간과 함께✔ 그때의 이동 경로를 정확히 출력해야 합니다! 💡 예제 입력5 17 💡 예제 출력45 10 9 18 17 🛠 알고리즘 접근 방식 이 문제는 전형적인 최단 거리 탐색 → BFS 문제입니다.하지만 경로 추적까지 해야 하므로,✔ 이동 이전 위치를 기록하는 prev[] 배열을 활용해야 합니다. 🔹 Java 코드 설명📌 Node 클래스static clas..