백준298 [백준] 10811번 : 바구니 뒤집기 – JAVA [자바] https://www.acmicpc.net/problem/10811 문제 해결 방법이 문제는 배열을 사용하여 바구니의 상태를 관리하고, 주어진 범위의 순서를 바꾸는 연산을 수행하면 된다. 핵심 로직은 특정 범위를 역순으로 만드는 것으로, 이를 위해 투 포인터(양 끝에서 중앙으로 이동하며 값 교환) 방법을 사용할 수 있다. 해결 방법1. 초기 상태에서 바구니 번호를 arr[i] = i 형태로 저장한다.2. M번의 연산을 수행하면서 주어진 범위의 숫자를 역순으로 변경한다.3. 마지막으로 배열의 값을 출력한다. 코드 import java.io.*;import java.util.*;public class Main { static int[] arr; // 바구니 배열 public static v.. 2025. 4. 3. [백준] 15650번 : N과 M (2) – JAVA [자바] https://www.acmicpc.net/problem/15650 문제 해결 방법이 문제는 백트래킹(Backtracking)을 활용하여 중복 없이 M개의 숫자를 선택하는 순열(Permutation) 문제이다. 다음과 같은 방식으로 해결할 수 있다.1. 조합(Combination) 개념 활용1부터 N까지의 숫자 중에서 M개를 고른다.선택한 숫자는 오름차순이어야 한다.사전 순으로 출력해야 하므로, 작은 숫자부터 선택한다. 2. 백트래킹을 이용한 조합 생성start 변수를 활용하여 중복을 방지하고 오름차순을 유지한다.for 문을 이용해 start 값부터 N까지 반복하며 숫자를 선택한다.선택한 숫자를 result 배열에 저장하고, 길이가 M이 되면 출력한다.재귀 호출을 통해 다음 숫자를 선택하고, 선택이 .. 2025. 4. 2. [백준] 15649번 : N과 M (1) – JAVA [자바] https://www.acmicpc.net/problem/15649 문제 해결 방법이 문제는 백트래킹(Backtracking)을 활용하여 중복 없이 M개의 숫자를 선택하는 순열(Permutation) 문제이다. 다음과 같은 방식으로 해결할 수 있다.1. 백트래킹을 이용한 순열 생성1부터 N까지의 숫자 중에서 M개를 고른다.숫자는 중복 없이 선택해야 한다.사전 순으로 출력해야 하므로, 작은 숫자부터 선택한다. 2. 백트래킹을 수행하는 과정for 문을 이용해 1부터 N까지 순회하며 숫자를 선택한다.이미 선택한 숫자는 방문 체크 배열(visited [])을 사용하여 중복을 방지한다.선택한 숫자를 result [] 배열에 저장하고, 길이가 M이 되면 출력한다.재귀 호출을 통해 다음 숫자를 선택하고, 선택이 .. 2025. 4. 1. [백준] 11725번 : 트리의 부모 찾기 – JAVA [자바] https://www.acmicpc.net/problem/11725 문제 해결 방법이 문제는 루트 없는 트리에서 각 노드의 부모를 찾는 문제이다. BFS(너비 우선 탐색) 또는 DFS(깊이 우선 탐색)을 활용하여 해결할 수 있다.1. 그래프 구성입력으로 주어진 트리의 연결 정보를 이용하여 인접 리스트를 만든다.각 노드는 서로 연결된 상태이며, 양방향 간선으로 주어진다.2. BFS를 이용한 부모 노드 찾기BFS(너비 우선 탐색) 방법을 사용한다.루트 노드(1번 노드)부터 탐색을 시작하며, 자식 노드들의 부모를 기록한다.방문한 노드는 다시 방문하지 않도록 한다.3. 결과 출력2번 노드부터 N번 노드까지의 부모를 순서대로 출력한다. 코드 import java.io.*;import java.util.*.. 2025. 3. 25. 이전 1 2 3 4 ··· 75 다음 반응형