목록자료구조 (22)
-
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/k4qkC/btrleqezQwf/TBKSqj5igW46YKRfdhjxuK/img.png)
# 주소 https://www.acmicpc.net/problem/1260 1260번: DFS와 BFS 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사 www.acmicpc.net # 문제 # 문제 해설 및 코드 리뷰 import java.util.LinkedList; import java.util.Queue; import java.util.Scanner; public class Main{ static int[][] arr; static boolean[] visit; static int n; static int m; static..
배열이 정열되어 있다는 것은 수학적으로 단조증가 수열이라는 것과 동치입니다. 즉, x0 < x1 < ... < xn이 있을 때 어떤 값 xk를 뽑고 그 값이 내가 찾는 값보다 크다면 xk, xk+1, ... , xn-1역시 원하는 값보다 클 것입니다. 그렇다면 굳이 이 값들은 탐색할 필요가 없으므로 과감하게 제거합니다. 반대로 내가 찾는 값보다 작을 경우 x0, x1, .... , xk는 탐색할 필요가 없습니다. public static int solution(int[] arr, int M) { // arr 배열에서 M을 찾자 Arrays.sort(arr); // 정렬 int start = 0; // 시작 int end = arr[arr.length-1]; // 끝 while(start mid) sum+..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bjiQjT/btrhUYjwTnn/EVyYhS7xYkCLOnZkCnJDz1/img.png)
# 주소 https://www.acmicpc.net/problem/12015 12015번: 가장 긴 증가하는 부분 수열 2 첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 수열 A를 이루고 있는 Ai가 주어진다. (1 ≤ Ai ≤ 1,000,000) www.acmicpc.net # 문제 # 문제 해설 및 코드 리뷰 import java.util.*; import java.io.*; public class Main { private static BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); public static void main(String args[]) throws IO..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cy3AY0/btrfVs8Jwpe/yaeLQqK7cPapk7BiBH8aVk/img.png)
# 주소 https://www.acmicpc.net/problem/15657 15657번: N과 M (8) N개의 자연수와 자연수 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. N개의 자연수는 모두 다른 수이다. N개의 자연수 중에서 M개를 고른 수열 www.acmicpc.net # 문제 # 문제 해설 및 코드 리뷰 package first; import java.util.*; import java.util.Scanner; public class sex { public static int[] arr; public static int N, M; public static int[] ans; public static StringBuilder sb = new S..