Problem Solving/BOJ

    [백준, BOJ 1300] K번째 수 (java)

    https://www.acmicpc.net/problem/1300 1300번: K번째 수 세준이는 크기가 N×N인 배열 A를 만들었다. 배열에 들어있는 수 A[i][j] = i×j 이다. 이 수를 일차원 배열 B에 넣으면 B의 크기는 N×N이 된다. B를 오름차순 정렬했을 때, B[k]를 구해보자. 배열 A와 B www.acmicpc.net 메모리: 14,588 KB , 시간: 180 ms 사용 알고리즘: 이분 탐색, 매개 변수 탐색 import java.io.BufferedReader; import java.io.InputStreamReader; public class Main { public static void main(String[] args) throws Exception{ BufferedRea..

    [백준, BOJ 4933] 뉴턴의 사과 (java)

    https://www.acmicpc.net/problem/4933 4933번: 뉴턴의 사과 각 테스트 케이스에 대해서, 두 트리가 동등하면 true를, 아니면 false를 출력한다. www.acmicpc.net 메모리: 14,284 KB , 시간: 128 ms 사용 알고리즘: 자료 구조, 트리 import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.*; public class Main { static Map child1; static Map child2; public static void main(String[] args) throws Exception{ BufferedReader br = new BufferedR..

    [백준, BOJ 4803] 트리 (java)

    https://www.acmicpc.net/problem/4803 4803번: 트리 입력으로 주어진 그래프에 트리가 없다면 "No trees."를, 한 개라면 "There is one tree."를, T개(T > 1)라면 "A forest of T trees."를 테스트 케이스 번호와 함께 출력한다. www.acmicpc.net 메모리: 69,404 KB , 시간: 576 ms 사용 알고리즘: 자료 구조, 깊이 우선 탐색, 분리 집합, 그래프 이론, 그래프 탐색, 트리 import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.LinkedList; import java..

    [백준, BOJ 17085] 십자가 2개 놓기 (java)

    https://www.acmicpc.net/problem/17085 17085번: 십자가 2개 놓기 첫째 줄에 격자판의 크기 N, M (2 ≤ N, M ≤ 15)이 주어진다. 둘째 줄부터 N개의 줄에 격자판의 상태가 주어진다. 항상 두 개의 십자가를 놓을 수 있는 경우만 입력으로 주어진다. www.acmicpc.net 메모리: 14,712 KB , 시간: 148 ms 사용 알고리즘: 브루트포스 알고리즘, 구현 import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { static int N, M; static char[][] board; public s..

    [백준, BOJ 18808] 스티커 붙이기 (java)

    https://www.acmicpc.net/problem/18808 18808번: 스티커 붙이기 혜윤이는 최근에 다양한 대회를 참여하면서 노트북에 붙일 수 있는 스티커들을 많이 받았다. 스티커는 아래와 같이 사각 모눈종이 위에 인쇄되어 있으며, 스티커의 각 칸은 상하좌우로 모두 연 www.acmicpc.net 메모리: 16,400 KB , 시간: 184 ms 사용 알고리즘: 브루트포스 알고리즘, 구현, 시뮬레이션 import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.StringTokenizer; public class Main { static int N, M; s..

    [백준, BOJ 10427] 빚 (java)

    https://www.acmicpc.net/problem/10427 10427번: 빚 각각의 줄에 대해 S(1) + … + S(N) 을 구한다. 중간 과정 및 답은 int 범위를 초과할 수 있으므로, 64bit 정수형(long long: C/C++, long: Java) 를 이용해야 한다. 입출력은 C/C++: printf("%lld\n",answer); Java : System. www.acmicpc.net 메모리: 15,580 KB , 시간: 228 ms 사용 알고리즘: 그리디 알고리즘, 누적 합, 정렬 내 생각 이 문제 설명이 좀... 이해가 잘 안되게 써둔 느낌...! 그래서 위의 설명은 안보고 공식만 봤다. 배열에서 M개를 선택했을 때, 선택한 M개 중 가장 큰 수를 a라고 한다면 a * M -..

    [백준, BOJ 19951] 태상이의 훈련소 생활 (java)

    https://www.acmicpc.net/problem/19951 19951번: 태상이의 훈련소 생활 2020년 5월 14일 논산훈련소에 입대한 태상이는 첫 총기 훈련에서 가스 조절기를 잃어버리는 중대한 실수를 범했다. 그로 인해, 태상이는 조교들에게 눈총을 받게 되었다. 조교들은 태상이에게 연 www.acmicpc.net 메모리: 79,104 KB , 시간: 1,172 ms 사용 알고리즘: 투 포인터 import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.Collections; import java.util.StringTokenizer; public class ..

    [백준, BOJ 16398] 행성 연결 (java)

    https://www.acmicpc.net/problem/16398 16398번: 행성 연결 홍익 제국의 중심은 행성 T이다. 제국의 황제 윤석이는 행성 T에서 제국을 효과적으로 통치하기 위해서, N개의 행성 간에 플로우를 설치하려고 한다. 두 행성 간에 플로우를 설치하면 제국의 함 www.acmicpc.net 메모리: 123,600 KB , 시간: 1,080 ms 사용 알고리즘: 그래프 이론, 최소 스패닝 트리 import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.PriorityQueue; import java.util.StringTokenizer; public class Main { static int[] p..

    [백준, BOJ 2412] 암벽 등반 (java)

    https://www.acmicpc.net/problem/2412 2412번: 암벽 등반 어떤 암벽에 n(1 ≤ n ≤ 50,000)개의 홈이 파져 있다. 각각의 홈의 좌표는 (x, y)와 같이 표현되는데, |a - x| ≤ 2이고 |b - y| ≤ 2이면 (x, y)에서 (a, b)로 이동할 수 있다. 이와 같이 홈들을 이용하여 이동 www.acmicpc.net 메모리: 54,560 KB , 시간: 520 ms 사용 알고리즘: 너비 우선 탐색, 자료 구조, 그래프 이론, 그래프 탐색, 해시를 사용한 집합과 맵 import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.*; public class Main { publ..

    [백준, BOJ 13397] 구간 나누기 2 (java)

    https://www.acmicpc.net/problem/13397 13397번: 구간 나누기 2 첫째 줄에 배열의 크기 N과 M이 주어진다. (1 ≤ N ≤ 5,000, 1 ≤ M ≤ N) 둘째 줄에 배열에 들어있는 수가 순서대로 주어진다. 배열에 들어있는 수는 1보다 크거나 같고, 10,000보다 작거나 같은 자연수 www.acmicpc.net 메모리: 15,300 KB , 시간: 164 ms 사용 알고리즘: 이분 탐색, 매개 변수 탐색 import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { public static void main(String..