본문 바로가기

Algorithm (Java)

(4)
초보자를 위한 DFS & BFS 탐색 완벽 가이드 문제 풀다 보면 "DFS로 풀어야 하나? BFS가 더 좋나?" 고민하게 되는 순간 많다 이번 글에서는 DFS(깊이 우선 탐색), BFS(너비 우선 탐색)의 개념과 차이점, 그리고 대표 문제들을 정리해보자📌 DFS / BFS 개념 비교항목DFS (깊이 우선 탐색, Depth-First Search )BFS (너비 우선 탐색, Breadth-First Search)탐색 방식깊이 우선 탐색 (파고 들어감)너비 우선 탐색 (옆으로 퍼져나감)구현 방식스택 or 재귀 함수큐 (Queue) 사용대표 사용 상황경우의 수 찾기, 미로 탐색, 조합 탐색 등최단 거리, 단계별 탐색, 최소 이동 횟수 등자료구조스택 구조 (함수 호출 스택 포함)큐 (선입선출 구조)구현 시 주의점조건 필수 (못 갈 때 return 등)whil..
백준 알고리즘 - 11047번 문제 (2025-06-17) 👛 백준 11047번 문제 동전 0 문제 🧠 알고리즘 설명입력 받기N (동전의 종류 수)K (목표 금액)coins[] (동전 종류 배열, 오름차순)큰 동전부터 차례대로 사용K를 현재 동전 값으로 나눈 몫만큼 동전 개수를 더합니다.K를 현재 동전 값으로 나눈 나머지로 갱신합니다.K가 0이 될 때까지 반복모든 동전을 처리한 후 count를 출력 🔥 왜 그리디 알고리즘인가?동전의 가치가 오름차순으로 주어지고, 각 동전이 이전 동전의 배수입니다.이 조건 덕분에 큰 동전부터 최대한 많이 사용하는 것이 항상 최적해가 됩니다.즉, "한 단계에서 가장 최선의 선택(큰 동전 최대 사용)"을 해도 전체적으로 최소 동전 개수를 보장할 수 있다. [ 문제 풀이 예시 - 예제 입력 1 ]10 420015105010050..
백준 알고리즘 - 5585번 문제 (2025-06-17) 💰 백준 5585번 문제 거스름돈 문제 🧠 알고리즘 설명 (Greedy)이 문제는 Greedy Algorithm(탐욕 알고리즘)을 활용하여 해결할 수 있다.✔️ 핵심 아이디어는?→ 거스름돈을 줄 때 가장 큰 동전부터 최대한 사용하는 것이 동전 개수를 줄이는 최선의 방법이다.✔️ Greedy가 가능한 이유는:- 동전의 단위들이 서로 배수 관계라서 큰 단위부터 사용하는 게 항상 최적이기 때문이다 Java로 푼 나의 문제 풀이 : import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int pri..
매 순간 최선의 선택? Greedy Algorithm 쉽게 이해하기 🧠 Greedy Algorithm (탐욕 알고리즘)매 순간 가장 최선의 선택을 하는 알고리즘 ✅ 개념 요약현재 상황에서 가장 좋아 보이는 선택을 반복과거의 선택이나 미래를 고려하지 않음"지금 이 순간 최선의 선택이 결국 전체 문제의 최선"인 경우에만 정답 보장실패 케이스가 없다면 조건문 없이 풀 수 있음 (예: 동전 거스름돈 문제는 항상 풀 수 있음) 📌 정리 포인트현재의 선택이 미래에 영향을 주면 그리디로는 풀 수 없다실패 가능성이 있는 문제라면 조건문 필요그래서 출제자는 해가 존재함을 보장하거나,해가 없을 경우 처리 로직까지 요구함📝 대표 문제 정리문제명설명백준 5585거스름돈 문제백준 11047동전 문제백준 2839사탕(설탕 배달) 문제백준 1931회의실 배정백준 11000강의실 배정프로그래..