철학하는 개발자

있는 것은 있고, 없는 것은 없다.

PS 346

[백준 03055] 탈출 [Java]

문제https://www.acmicpc.net/problem/3055 풀이S에 위치한 고슴도치가 비버의 굴 D로 이동하는데 필요한 최소 시간을 구하는 문제다.동시에, 물 또한 인접한 영역으로 퍼져나간다.물이 찰 예정인 영역은 고슴도치가 갈 수 없다. → 고슴도치보다 물 먼저 퍼져야 한다.물은 비버의 굴로 퍼질 수 없다.우선, 상수들을 정의해주자. final static char EMPTY = '.', WATER = '*', START = 'S', END = 'D'; static int[][] D = { {1, 0}, {-1, 0}, {0, 1}, {0, -1} }; static int R, C; static char[][] board; ..

[백준 16400] 소수 화폐 [Java]

문제https://www.acmicpc.net/problem/16400 풀이N 이하의 소수들을 사용하여 N을 표현할 수 있는 방법의 수를 계산하는 문제다.우선 N이하의 소수들을 구해주자. private static boolean isPrime(int num) { final int sqrtN = (int) Math.sqrt(num) + 1; for (int i = 2; i List primeList = new ArrayList(); for (int i = 2; i dp[i] : 소수들의 합으로 숫자 i를 만드는 경우의 수dp[i]의 i는 소수의 합이기 때문에 dp[i]는 dp[i - prime]에 prime을 더하는 경우의 수를 누적하면 된다.즉 i..

[백준 11520] And Then There Was 5 [Java]

문제https://www.acmicpc.net/problem/11520 풀이단순한 구현 문제다.입력받는 P, D에 대해 다음을 만족하는 Q, R 번째의 수를 출력하면 된다.Q : π에 대해 P이상인 Q번째 자리가 D인 최소 자리 QR : π에 대해 Q초과인 R번째 자리가 5인 최소 자리 R즉 정리하면 입력받은 D와 5를 출력하면 된다. while (N-- > 0) { // Solve sb.append(Integer.parseInt(br.readLine().split(" ")[1])).append(" ").append(5).append("\\n"); }소스코드https://github.com/rogi-rogi/problem-solving/bl..

[백준 11466] Alex Origami Squares [Java]

문제https://www.acmicpc.net/problem/11466 풀이주어진 직사각형에서 최대 크기의 정사각형 3개를 만들 때 정사각형 한 변의 최대 길이를 구하는 문제다.우선, W와 H에 대해 W ≤ H가 되도록 값을 교환하자. // Solve if (W > H) { double temp = W; W = H; H = temp; }이제 직사각형에 정사각형을 배치할 수 있는 방법은 다음과 같이 두 가지가 존재하다.한 줄에 3개의 정사각형 배치두 줄로 배치결국 W와 H에 대해 더 작은 값으로 정사각형을 만들어야 한다.두 경우에 대해 최솟값을 구해주고, 이 중 더 큰 정사각형의 한 변을 구해주자. ..

[백준 11434] Ampelmännchen [Java]

문제https://www.acmicpc.net/problem/11434 풀이주어진 분쟁의 수와 주어진 분쟁에 대해 어떤 것을 선택하는게 더 좋은지에 행복도가 주어질 때, 최대 행복도를 구하는 문제다.문제의 조건대로 구현해주고, 최댓값을 계산하면 된다. int res = 0; while (N-- > 0) { st = new StringTokenizer(br.readLine()); final int a = Integer.parseInt(st.nextToken()); final int b = Integer.parseInt(st.nextToken()); final i..

[백준 11368] A Serious Reading Problem [Java]

문제https://www.acmicpc.net/problem/11368 풀이존재하는 책 제목에 대한 정보가 주어지면 총 몇 권이 있는지 계산하는 문제다.문제 속 예제를 통해 알 수 있듯, 주어지는 정보 C, W, L, P에 대해 순서대로 제곱 하면 책의 수를 알 수 있다.// Solveint cnt = num[0];for (int i = 1; i 소스코드https://github.com/rogi-rogi/problem-solving/blob/main/baekjoon-online-judge/practice/11368.java

[백준 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"); ..