"꾸준하고 완벽한 한 걸음"

PS/Baekjoon Online Judge 709

[백준 11312] 삼각 무늬 - 2 [Java]

문제https://www.acmicpc.net/problem/11312 풀이한 변의 길이가 A, B인 삼각형이 있을 때 ( B ≤ A) B로 A를 완전히 덮기 위해 필요한 수를 출력하면 된다.이는 $(A / B)^2$이 된다. while (T-- > 0) { long[] info = Arrays.stream(br.readLine().split(" ")).mapToLong(Long::parseLong).toArray(); final long a = info[0]; final long b = info[1]; // Solve sb.append(a / b * a / b).append("\\n"); ..

[백준 11006] 남욱이의 닭장 [Java]

문제https://www.acmicpc.net/problem/11006 풀이닭의 다리 수의 합과 닭의 수가 주어졌을 때 다리가 1개 또는 2개인 닭의 수를 각각 계산해주는 문제다.모든 닭의 다리가 2개로 가정해보자.다리가 1개인 닭의 수는 2M - N이며, 다리가 2개인 닭의 수는 M - (2M - N) = N - M이 된다.import java.io.*;import java.util.StringTokenizer;public class Main { public static void main(String[] args) throws IOException { // Init BufferedReader br = new BufferedReader(new InputStreamReader..

[백준 03151] 합이 0 [Java]

문제https://www.acmicpc.net/problem/3151풀이N개의 수 중에서 3개의 숫자 합이 0인 경우의 수를 찾으면 된다.N은 최대 10,000으로 완전 탐색을 하면 시간 초과가 발생한다.N^2 탐색으로 두 수를 고른 후, 이분 탐색으로 나머지 수를 찾으면 된다.두 수를 0부터 차례대로 완전 탐색을 하기 때문에 이분 탐색의 범위는 ( b + 1 ) ~ ( N - 1 ) 가 된다.이 때, 두 수 a, b에 대해 c가 1개가 아닐 수 있다.upper - lower로 동일한 c의 개수를 세주자.소스코드보기ttps://www.acmicpc.net/problem/3151 풀이N개의 수 중에서 3개의 숫자 합이 0인 경우의 수를 찾으면 된다.N은 최대 10,000으로 완전 탐색을 하면 시간 초과가 ..

[백준 06118] 숨박꼭질 [Java]

문제https://www.acmicpc.net/problem/6118  풀이양방향 그래프의 1번 정점으로부터의 최대 깊이를 가지는 정점의 번호와 깊이, 동일한 최대 깊이를 가지는 정점의 수를 구하는 문제다.양방향 그래프부터 구성하자.import java.io.*;import java.util.*;public class Main { static List> graph = new ArrayList(); static int N; static int[] depth; public static void main(String[] args) throws IOException { // Init BufferedReader br = new BufferedReader(new Inp..

[백준 01325] 효율적인 해킹 [Java]

문제https://www.acmicpc.net/problem/1325  풀이단방향 그래프가 주어질 때, 가장 많은 정점을 방문할 수 있는 시작 정점을 찾는 문제다.A가 B를 신뢰할 때 B가 해킹 당하면 A도 해킹 당한다. 신뢰 관계에 대한 단방향 그래프를 구성하자.import java.io.*;import java.util.*;public class Main { static List> graph = new ArrayList(); static int N; static int[] cnt public static void main(String[] args) throws IOException { // Init BufferedReader br = new Buffere..

[백준 01477] 휴게소 세우기 [Java]

문제https://www.acmicpc.net/problem/1477 풀이구간 1 ~ (L - 1)에 N개의 휴게소가 위치 A[i]에 존재하고, M개의 휴게소를 추가로 지었을 때, 휴게소가 없는 구간의 길이의 최댓값이 최소가 되도록 해야 한다.문제의 설명에서 알 수 있듯.M개의 휴게소를 전부 설치 가능한 경우에 대해휴게소가 없는 구간의 길이의 최댓값이 최소가 되어야 한다.휴게소가 없는 구간의 길이를 탐색 범위로 잡고, 이분 탐색을 하면 된다.배열 A의 앞 뒤에 경계 값을 붙여주어 계산을 쉽게 해보자.import java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws IOException..

[백준 14921] 용액 합성하기 [Java]

문제https://www.acmicpc.net/problem/14921 풀이N개의 수 중 두 수의 합을 0에 최대한 가깝게 만드는 문제다.우선, A를 오름차순으로 정렬해 문제를 단순화하자.import java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws IOException { // Init BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); // Input final int N = Integer.parseInt(br.readLine()); i..