목록정렬 (13)
Dev.baelanche
정렬을 오름차순 혹은 내림차순으로 해주고 큰 수 > 작은 수 > 큰 수 > 작은 수 순으로 배치하여 넓이를 구하면 된다. public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int a[] = new int[4]; for(int i=0; i
Comparator 클래스를 구현하여 문제에서 요구하는대로 정렬을 구현했다. public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int a[][] = new int[n][2]; for(int i=0; i
수의 개수가 10,000,000 이라 배열에 모두 담게되면 메모리 초과로 풀 수 없다. 정렬할 수가 10000 이하 라는것을 이용하여 수가 입력된 개수를 세어 정렬하는 카운팅 정렬(계수 정렬)으로 풀 수 있다. 풀이 1 public class Main { public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); int n = Integer.parseInt(br.readLine()); int a[..
줄의 개수가 최대 1000000 이라서 선택, 거품, 삽입 정렬 등의 느린 정렬방법으로는 풀 수 없다. 병합(합병) 정렬, 힙 정렬, 퀵 정렬 등으로 풀 수 있는데, 언급한 3가지 정렬 방법으로 모두 구현해 보겠다. 1. 병합 정렬(Merge Sort) public class Main { static int temp[]; public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); int n; n ..
문제에는 배열 B를 재배열 하지말라고 언급했는데 재배열 하지 않고 풀 줄 모르겠어서 재배열했다... 배열 A, B 를 각각 오름차순, 내림차순으로 정렬하여 곱하면 최소값이 나온다. public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int a[] = new int[n]; int b[] = new int[n]; for(int i=0; i