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

2025/03 18

[백준 15685] 드래곤 커브 [Java]

문제https://www.acmicpc.net/problem/15685 풀이문제에서 주어진 조건대로 드래곤 커브를 만들고, 네 꼭짓점이 드래곤 커브의 일부분인 1x1 크기의 정사각형의 수를 세는 문제다.우선, 드래곤 커브의 규칙부터 알아보자.시작점에서 시작방향으로 1칸 이동 후 끝점을 기준으로 지금까지 그린 드래곤 커브를 시계 방향으로 90도 회전해야 한다.이때, 드래곤 커브의 모든 변은 위치와 방향에 관계없이 결국 시계 방향으로 90도 회전을 한다.0: x좌표가 증가하는 방향 (→)1: y좌표가 감소하는 방향 (↑)2: x좌표가 감소하는 방향 (←)3: y좌표가 증가하는 방향 (↓)방향 변화에 대해 다음과 같은 규칙이 성립한다.0 → 11 → 22 → 33 → 0각 부분 드래곤 커브들의 방향 변화 규칙..

[백준 03980] 선발 명단 [Java]

문제https://www.acmicpc.net/problem/3980 풀이11명의 선수들이 각 포지션에서의 적합한 능력치를 바탕으로 모든 포지션에 배치했을 떄, 선수들의 최대 능력치 합을 구하는 문제다.완전 탐색을 통해 충분히 구할 수 있으나, 여러 TC가 존재하기 때문에 최적화를 진행해야 한다.한 선수는 11개 중 최대 5개의 포지션에 대한 능력치를 가질 수 있다.따라서 능력치가 0보다 큰 경우에 대해서만 탐색하면 된다. private static int bt(int sum, int i) { if (i == 11) { return sum; } int res = 0; for (int j = 0; j 0) { ..

[백준 18405] 경쟁적 전염 [Java]

문제https://www.acmicpc.net/problem/18405 풀이N * N크기의 보드에서 번호가 낮은 바이러스부터 상하좌우로 증식한다.이 때, S초 후 ( X, Y )에 위치한 바이러스를 출력하는 문제다.우선 ( X, Y )에 시작부터 바이러스가 있을 수 있다. 확인 후 탐색을 진행하자. private static int bfs() { if (A[X - 1][Y - 1] != 0) return;번호가 낮은 바이러스 먼저 증식해야 하기 때문에 바이러스를 찾아, 바이러스 번호에 대해 오름차순으로 정렬 후 큐에 담아주자. List list = new ArrayList(); for (int i = 0; i 0) { ..

[백준 26310] Finalists [Java]

문제https://www.acmicpc.net/problem/26310 풀이문제에서 주어진 절차 A1 ~ A4에 따라 각 지역의 경쟁력을 계산하고, 최종 팀을 결정하는 문제다.A1에서는 주어진 가중치에 따라 점수를 계산하면 된다. // A1 // 입력 순서: s p_t p_u r_t r_u f // site score = 0.56 * r_u + 0.24 * r_t + 0.14 * p_u + 0.06 * p_t + 0.3 * f for (int i = 0; i A2에서는 경쟁력을 기준으로 내림차순 정렬하면 된다. // A2 regionals.sort((a, b)-> Double.compare(b.score, a.score));A3에..

[백준 12571] Rope Intranet (Small) [Java]

문제https://www.acmicpc.net/problem/12571 풀이선분의 양쪽 끝 위치 정보가 주어졌을 때, 선분들의 교차점을 모두 세는 문제다.N은 2이하로, 단순 비교를 통해 선분의 시작점에 대해 교착점을 탐색하면 된다. // Solve if (N == 1) { sb.append(String.format("Case #%d: 0\\n", t)); } else { final int A1 = input[0]; final int B1 = input[1]; input = Arrays.stream(br.readLine().split(" "..

[백준 12352] Hedgemony (Large) [Java]

문제https://www.acmicpc.net/problem/12352 풀이이전의 Hedgemony (Small) 에서 N이 1,000으로 늘어난 문제다.2025.03.02 - [PS/Baekjoon Online Judge] - [백준 12351] Hedgemony (Small) [Java] [백준 12351] Hedgemony (Small) [Java]문제https://www.acmicpc.net/problem/12351 풀이입력받은 N개의 덤불 높이에 대해 문제의 조건대로 높이를 조절하는 문제다.2번 덤불부터 N - 1번 덤불에 대해 i번 덤불의 높이가 i - 1, i + 1덤불의 평균보다kyr-db.tistory.com 기존의 풀이로도 동일하게 해결할 수 있다.소스코드https://github.co..

[백준 12351] Hedgemony (Small) [Java]

문제https://www.acmicpc.net/problem/12351 풀이입력받은 N개의 덤불 높이에 대해 문제의 조건대로 높이를 조절하는 문제다.2번 덤불부터 N - 1번 덤불에 대해 i번 덤불의 높이가 i - 1, i + 1덤불의 평균보다 큰 경우에 평균으로 길이를 조절해야 한다. // Solve for (int j = 1; j avg) { A[j] = avg; } }N - 1번째 덤불의 높이를 출력해주자. sb.append("Case #").append(i).append(": ").append(A[N - 2]).append("\\n"); }소스코..