BOJ

    [백준, BOJ 1326] 폴짝폴짝 (java)

    https://www.acmicpc.net/problem/1326메모리: 13,240 KB , 시간: 96 ms사용 알고리즘: 너비 우선 탐색, 그래프 이론, 그래프 탐색 import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.ArrayDeque;import java.util.StringTokenizer;public class Main { public static void main(String[] args) throws Exception{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringToke..

    [백준, BOJ 5585] 거스름돈 (java)

    https://www.acmicpc.net/problem/5585메모리: 11,452 KB , 시간: 64 ms사용 알고리즘: 그리디 알고리즘 import java.io.BufferedReader;import java.io.InputStreamReader;public class Main { public static void main(String[] args) throws Exception{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int n = 1000 - Integer.parseInt(br.readLine()); int[] change = {500, 100, 50, 10..

    [백준, BOJ 10451] 순열 사이클 (java)

    https://www.acmicpc.net/problem/10451메모리: 54,632 KB , 시간: 388 ms사용 알고리즘: 그래프 이론, 그래프 탐색 import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.StringTokenizer;public class Main { static int[] arr; static boolean[] visited; public static void main(String[] args) throws Exception{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); ..

    [백준, BOJ 16118] 달빛 여우 (java)

    https://www.acmicpc.net/problem/16118메모리: 76,244 KB , 시간: 912 ms사용 알고리즘: 데이크스트라, 그래프 이론, 최단 경로 늑대가 절반의 속도로 달릴 때 double 타입으로 저장하지 않기 위해절반 속도 = 기존의 길이(d)일반 속도 = 2 * d두 배 속도 = 4 * d 로 저장하였다.import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.ArrayList;import java.util.Arrays;import java.util.PriorityQueue;import java.util.StringTokenizer;public class Main { static fin..

    [백준, BOJ 1976] 여행 가자 (java)

    https://www.acmicpc.net/problem/1976메모리: 16,704 KB , 시간: 192 ms사용 알고리즘: 그래프 이론, 그래프 탐색, 플로이드-워셜import java.io.BufferedReader;import java.io.InputStreamReader;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; int N = Inte..

    [백준, BOJ 1715] 카드 정렬하기 (java)

    https://www.acmicpc.net/problem/1715메모리: 24,704 KB , 시간: 316 ms사용 알고리즘: 자료 구조, 그리디 알고리즘, 우선순위 큐import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.PriorityQueue;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()); ..

    [백준, BOJ 10999] 구간 합 구하기 2 (java)

    https://www.acmicpc.net/problem/10999메모리: 148,184 KB , 시간: 676 ms사용 알고리즘: 세그먼트 트리, 느리게 갱신되는 세그먼트 트리, 자료 구조 세그먼트 트리 중에서도 Lazy Propagation을 적용하여 풀어야 하는 문제이다.Lazy Propagation을 적용한 세그먼트 트리의 개념은 여기에 자세히 나와있다.import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.StringTokenizer;public class Main { private static class SegmentTree { long[] tree; long[] lazy; ..

    [백준, 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 1080] 행렬 (java)

    https://www.acmicpc.net/problem/1080메모리: 11,620 KB , 시간: 68 ms사용 알고리즘: 그리디 알고리즘 import java.io.BufferedReader;import java.io.InputStreamReader;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 = new StringTokenizer(br.readLine()..