백준 정렬

    [백준, BOJ 2170] 선 긋기 (java)

    https://www.acmicpc.net/problem/2170메모리: 371,304 KB , 시간: 2,936 ms사용 알고리즘: 정렬, 스위핑 HashMap의 key들을 리스트에 담아 정렬하는 과정 대신 TreeMap을 사용했었는데 시간 초과가 났다. TreeMap에서 매번 key를 찾고 새로운 key를 정렬해서 넣고 하는 것보다HashMap에서 $O(1)$로 key를 찾고 새로운 key를 넣은 후, 한 번에 keySet을 정렬하는 것이 더 빠르다.import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.*;public class Main { public static void main(String[] args..

    [백준, BOJ 1517] 버블 소트 (java)

    https://www.acmicpc.net/problem/1517메모리: 19,4524 KB , 시간: 536 ms사용 알고리즘: 분할 정복, 정렬버블 소트로 문제를 해결하면 $O(N^2)$머지 소트로 문제를 해결하면 $O(NlogN)$따라서, 문제 제목은 버블 소트이지만 머지 소트로 답을 구해야 한다. 분할 정복 과정에서정렬된 두 배열 left와 right가 있고, 두 배열을 정렬하며 합쳐야 한다.left[idxL]과 right[idxR]을 비교하며 ret 배열에 담다가left[idxL] > right[idxR]인 지점에서버블 소트였다면 right[idxR]을 left[idxL] ~ left[left.length - 1]들과 swap해주는 과정이 일어났을 것이다.따라서 answer에 left.lengt..

    [백준, BOJ 3758] KCPC (java)

    https://www.acmicpc.net/problem/3758메모리: 35,844 KB , 시간: 324 ms사용 알고리즘: 구현, 정렬 import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.Arrays;import java.util.StringTokenizer;public class Main { public static void main(String[] args) throws Exception{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st; Stri..

    [백준, BOJ 20920] 영단어 암기는 괴로워 (java)

    https://www.acmicpc.net/problem/20920메모리: 42,536 KB , 시간: 664 ms사용 알고리즘: 자료 구조, 해시를 사용한 집합과 맵, 정렬, 문자열import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.*;public class Main { static class Word { String word; // 단어 int count; // 등장 횟수 int length; // 단어 길이 Word(String word) { this.word = word; count = 0; l..

    [백준, BOJ 2217] 로프 (java)

    https://www.acmicpc.net/problem/2217메모리: 26,824  KB , 시간: 280 ms사용 알고리즘: 그리디 알고리즘, 수학, 정렬 import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.Arrays;public class Main { public static void main(String[] args) throws Exception{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int N = Integer.parseInt(br.readLine()); int[]..

    [백준, BOJ 10431] 줄세우기 (java)

    https://www.acmicpc.net/problem/10431메모리: 18,840 KB , 시간: 180 ms사용 알고리즘: 구현, 시뮬레이션, 정렬, 이분 탐색import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.Arrays;import java.util.LinkedList;import java.util.List;import java.util.StringTokenizer;public class Main { public static void main(String[] args) throws Exception{ BufferedReader br = new BufferedReader(new Input..

    [백준, BOJ 10825] 국영수 (java)

    https://www.acmicpc.net/problem/10825메모리: 61,104 KB , 시간: 664 ms사용 알고리즘: 정렬import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.Arrays;import java.util.StringTokenizer;public class Main { static class Student implements Comparable{ String name; int kor; int eng; int math; public Student(String name, int kor, int eng, int math) { ..

    [백준, BOJ 2751] 수 정렬하기 2 (java)

    https://www.acmicpc.net/problem/2751메모리: 94,388 KB , 시간: 688 ms사용 알고리즘: 정렬 Arrays.sort 사용메모리: 109,960 KB , 시간: 1,268 msimport java.io.BufferedReader;import java.io.InputStreamReader;import java.util.Arrays;public class Main { public static void main(String[] args) throws Exception{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int N = Integer.parseInt..

    [백준, BOJ 8979] 올림픽 (java)

    https://www.acmicpc.net/problem/8979메모리: 14,852 KB , 시간: 124 ms사용 알고리즘: 구현, 정렬import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.Arrays;import java.util.StringTokenizer;public class Main { public static void main(String[] args) throws Exception{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st; st = ..

    [백준, BOJ 1181] 단어 정렬 (java)

    https://www.acmicpc.net/problem/1181메모리: 24,176 KB , 시간: 304 ms사용 알고리즘: 정렬, 문자열import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.ArrayList;import java.util.Collections;public class Main { public static void main(String[] args) throws Exception{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int N = Integer.parseInt(br.read..