본문 바로가기

전체 글153

[백준] 벽 부수고 이동하기/자바 문제         레벨: G3알고리즘: BFS 풀이시간:  1시간 20분힌트 참조 유무: 유https://www.acmicpc.net/problem/22061 번째 시도   벽을 언제 뽀갤 건지 한 번에 알 수 있나?NO근데 왜 dfs가 아니고 bfs 인가?dfs는 최단 경로를 찾는 것이 아니라 끝까지 탐색해서 경로를 찾는 것이기 때문에 첫 번째 도착한 것이 최단경로임을 보장하지 않는다. 최단 경로 찾기에 bfs가 적합하다.import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.LinkedList;import java.util.Queue;public class Main.. 2024. 5. 7.
[백준] 트리의 지름/자바 문제         레벨: G2알고리즘: DFS풀이시간: 1시간힌트 참조 유무: 유https://www.acmicpc.net/problem/11671 번째 시도   dfs를 통해 임의의 정점 하나에서 가장 먼 정점을 구한다. (임의의 정점은 아무거나 상관없다.)dfs를 통해 구한 정점으로 부터 가장 먼 정점까지의 거리를 구한다.import java.util.*; public class Main { static ArrayList[] list; static boolean[] visited; static int max = 0; static int node; public static void main(String args[]) { Scanner scan =.. 2024. 5. 6.
[백준] 적록색약/자바 문제         레벨: G2알고리즘: DFS 풀이시간:  30분힌트 참조 유무: 무https://www.acmicpc.net/problem/100261 번째 시도   할 일 배열 초기화적록색맹x 일때 dfs적록색맹o 일때 dfs인접해있는 요소를 비교하는 문제일 때는 방향 설정 배열을 쓰는 것이 Point!dfs함수의 for문과 main함수에서 for문을 짤 때 헷갈릴 수도 있다.dfs함수는 동,서,남,북 방향으로 주어진 글자랑 같은 게 무엇인지 찾는 것이고 main함수의 for문은 전체배열을 순서대로 순회하는 것이다 문제가 카드의 경우의 수를 구하는 경우라면 main함수의 for문은 없을 것이다. dfs 함수내에만 존재할 것이다.dfs함수에서 전체 배열을 순서대로 순회하기 때문에 main함수에서 전체.. 2024. 5. 5.
[백준] 트리/자바 문제         레벨: G5알고리즘: DFS풀이시간: 2시간힌트 참조 유무: 유 https://www.acmicpc.net/problem/10681 번째 시도   import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.ArrayList;import java.util.StringTokenizer;public class Main { static ArrayList list = new ArrayList(); static boolean[] visited; static int answer = 0; public static void main(String[] .. 2024. 5. 4.
[백준] DFS와 BFS/자바 문제         레벨: S2알고리즘: DFS, BFS풀이시간: 힌트 참조 유무:https://www.acmicpc.net/problem/12601 번째 시도   가장낮은 숫자부터 탐색해야 한다하니 인접행렬로 그래프 구성dfs 메소드 작성법visted[] = true할 일for문으로 dfs 재귀호출import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.LinkedList;import java.util.Queue;import java.util.StringTokenizer;public class Main { static StringBuilder sb = new String.. 2024. 5. 3.
항해99 32일차 TIL(강의실 배정 / 백준) 문제         레벨:  G5알고리즘: 그리디풀이시간: 1시간힌트 참조 유무: 무https://www.acmicpc.net/problem/110001 번째 시도   끝나는 시간으로 정렬 현재 인덱스 끝나는 시간이 다음 인덱스 시작 시간보다 크다면 answer++ 방의 개수를 새는 자료구조 고민  min변수에 방 최소 개수 담고 우선순위에큐에 끝나는 시간 담기 import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.*;public class Main { public static void main(String[] args) throws IOException { .. 2024. 5. 1.
항해99 31일차 TIL( 저울 /백준) 문제         레벨: G2알고리즘: 그리디 풀이시간: 1시간힌트 참조 유무: 유<a href="https://www.acmicpc.net/problem/2437" target="_blank" rel="noopener norefer.. 2024. 4. 30.
[백준] 보석 도둑 /자바 문제         https://www.acmicpc.net/problem/1202레벨: G2알고리즘: 그리드 풀이시간: 40분힌트 참조 유무: 무1 번째 시도   보석의 가격으로 정렬해야 하나? 보석의 무게로 정렬해야 하나?가격으로 정렬 후 가방 순회하며 담을 수 있는 지 판단자료구조 고민 현재 가방에서 선택할 수 있는 보석을 우선순위큐에 넣기 우선순위 큐를 보석의 값으로 내림차순 정렬가장 보석의 값이 큰 거 하나 선택이 과정을 가방의 개수 만큼 반복import java.util.*; public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); .. 2024. 4. 29.
[백준] 카드 정렬하기 / 자바 문제         https://www.acmicpc.net/problem/1715레벨: G4알고리즘: 그리드풀이시간: 1시간힌트 참조 유무: 무1 번째 시도   오름차순 정렬 필요두가지 생각이 들었습니다. 정렬 후1. 두 묶음씩 묶어서 계속 더해가며 줄일 것인가2. 1 번째와 2 번째만 계속 더해가며 줄일 것인가예시를 들어 비교1 3 5 10 4 + 15 + 4 + 15 = 38 4 + 4+5 + 9 +10 =32 결론: 2 번째 방법 선택 // 3, 5킬로그램 봉지가 있다.// 최대한 5킬로그램 봉지를 많이 들고가야 한다.// 정확하게 N킬로그램을 만들 수 없다면 -1을 출력한다.import java.util.*;import java.io.*;class Main { public static v.. 2024. 4. 29.