https://www.acmicpc.net/problem/10828 10828번: 스택 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net java에서 제공하는 스택을 사용하였다! 시간제한이 0.5초이기 때문에, stringbuilder를 사용하였음 Bufferedreader에 익숙해지려고 Bufferedreader를 사용하였는데 push 다음의 값을 읽는 것이 처음에 헷갈렸다! import java.io.BufferedReader; import java.io.IOException; import java.io.Inp..
java에서 제공하는 Arrays.sort(퀵sort)방법을 풀면, 평균 O(nlogn) 최악의 경우 O(N^2)이기 때문에 Collections.sort를 사용해야함 Collections.sort는 합병 및 삽입정렬 알고리즘을 사용하는 Timsort이다. 시간복잡도가 O(n) ~ O(nlogn)를 보장한다. 여기서 중요한거는 반복문을 돌려 System.out.println을 사용하게 되면 시간초과가 난다! StringBuilder나 BufferedWriter를 사용해야함. import java.util.ArrayList; import java.util.Collections; import java.util.Scanner; public class Main_수정렬하기2751 { public static vo..
package 트리의지름; 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 = new Scanner(System.in); int n = scan.nextInt(); list = new ArrayList[n + 1]; for(int i = 1; i < n + 1; i++) { list[i] = new ArrayList(); } for(int i = 0; i < n; i++) { int s = scan.nextInt(); while(t..
package 운동; import java.util.*; public class Main { public static final int INF = (int) 1e9; public static int n, m; public static int[][] graph; public static void main(String[] args) { Scanner scan = new Scanner(System.in); n = scan.nextInt(); m = scan.nextInt(); graph = new int[n + 1][n + 1]; // 최단 거리 테이블 초기화 for (int i = 0; i < n + 1; i++) { Arrays.fill(graph[i], INF); } // 자기 자신에서 자기 자신으로 가..