본문 바로가기

백준29

[DFS,BFS] 백준 1260번 DFS와 BFS DFS(깊이우선 탐색) 최대한 깊이 내려간후 더이상 내려갈 노드가 엎다면 옆으로 이동하여 탐색하는방법 구현방법: 스택 또는 재귀함수 유리한 문제: 경로의 특징을 저장하는 문제 BFS(너비우선 탐색) 루트노드로 부터 가까운 노드 부터 탐색하는 방법 구현방법: 큐 유리 한문제: 최단거리 package BaekJoon.DFS_BFS; import java.io.*; import java.util.*; public class No1260 { static boolean[] checked = new boolean[1001]; //탐색여부 static int N; //정점 static int M; //간선 static int V; //시작정점 public static void main(String[] args) th.. 2022. 11. 7.
[완전탐색] 백준 14889번 스타트와 링크 https://www.acmicpc.net/problem/14889 14889번: 스타트와 링크 예제 2의 경우에 (1, 3, 6), (2, 4, 5)로 팀을 나누면 되고, 예제 3의 경우에는 (1, 2, 4, 5), (3, 6, 7, 8)로 팀을 나누면 된다. www.acmicpc.net Math.abs(a) 절댓값 구하는 메소드 Math.min(a,b) 최솟값 구하는 메소드 dfs dfs로 팀구성 diff 점수차 계산 메소드 import java.util.*; public class No14889 { static int N; static int[][] arr; static int min = Integer.MAX_VALUE; static boolean[] check; public static void .. 2022. 10. 13.
[완전탐색] 백준 2503번 숫자야구 https://www.acmicpc.net/problem/2503 2503번: 숫자 야구 첫째 줄에는 민혁이가 영수에게 몇 번이나 질문을 했는지를 나타내는 1 이상 100 이하의 자연수 N이 주어진다. 이어지는 N개의 줄에는 각 줄마다 민혁이가 질문한 세 자리 수와 영수가 답한 스트 www.acmicpc.net 이문제를 풀려면 각 자릿수의 값을 비교해가면서 풀어야 하는데 1. 나눗셈으로 각 자릿수 숫자 찾아서 비교하기 2. 문자열로 바꿔서 비교하기 이렇게 두개로 나뉘는거 같다 나는 첫번째 방법으로 했는데 다풀고 나니 뭔가 2번이 더 간단했을 것 같은 느낌이 조금 든다. 각 자리에 1~9의 숫자가 곂치지 않게 나오기 때문에 123~987의 영역을 탐색해야 한다. 그리고 123~987영역에는 0이 들어간 값.. 2022. 10. 6.
[완전탐색] 백준 2231번 분해합 쉬운 문제여서 처음 써보는 메소드 같은건 없었다. 가장 작은 생성자를 구해야 하는데 처음에 실수로 가장 큰 생성자를 구해 버렸다. 문제를 잘 읽어야겠다 import java.util.Scanner; public class Main { public static void main(String[] args){ Scanner sc = new Scanner(System.in); int N = sc.nextInt(); int result = 0; for(int i = 0; i < N; i++){ int sum = i; int a = i; while(a != 0){ //각 자리수 더하기 sum += a % 10; a /= 10; } if(sum == N){ result = i; break; } } System.out.. 2022. 10. 6.
[그리디] 백준 13305번 주유소 import java.util.Scanner; public class Main{ public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N = sc.nextInt(); //도시의 개수 long[] cost = new long[N]; //기름 값 long[] length = new long[N-1]; //도시간 길이 for(int i=0; i 2022. 9. 25.