본문 바로가기

boj127

[Java] BOJ 16235번 나무 재테크 16235번: 나무 재테크 부동산 투자로 억대의 돈을 번 상도는 최근 N×N 크기의 땅을 구매했다. 상도는 손쉬운 땅 관리를 위해 땅을 1×1 크기의 칸으로 나누어 놓았다. 각각의 칸은 (r, c)로 나타내며, r은 가장 위에서부터 www.acmicpc.net 풀이 문제에서 주어진대로 처리를하여 해결했습니다. 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.LinkedList; import java.util.PriorityQueue; import java.util.Queue; import java.util.StringTokenizer; public cl.. 2021. 6. 2.
[Java] BOJ 5557번 1학년 5557번: 1학년 상근이가 1학년 때, 덧셈, 뺄셈을 매우 좋아했다. 상근이는 숫자가 줄 지어있는 것을 보기만 하면, 마지막 두 숫자 사이에 '='을 넣고, 나머지 숫자 사이에는 '+' 또는 '-'를 넣어 등식을 만들며 놀 www.acmicpc.net 풀이 DP를 사용하여 해결했습니다. 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { public static int N; public static int[] arr; // 결과가 2^63 - 1 이하라는 것을 주의 public static.. 2021. 6. 1.
[Java] BOJ 15683번 감시 15683번: 감시 스타트링크의 사무실은 1×1크기의 정사각형으로 나누어져 있는 N×M 크기의 직사각형으로 나타낼 수 있다. 사무실에는 총 K개의 CCTV가 설치되어져 있는데, CCTV는 5가지 종류가 있다. 각 CCTV가 감 www.acmicpc.net 풀이 카메라의 위치를 리스트를 통해 기억해두고 순열을 사용해 각 카메라마다의 방향을 정했습니다. 그 다음 기존 배열은 다음에 완성된 순열에서 사용해야하므로 배열을 복사하여 카메라를 방향과 타입에 맞게 회전시키며 모든 카메라의 감시 위치를 복사한 배열에 저장했습니다. 마지막으로 앞서 저장한 카메라의 감시 위치를 사용해 사각지대의 최소크기를 구하여 해결했습니다. 코드 import java.io.BufferedReader; import java.io.IOEx.. 2021. 5. 31.
[Java] BOJ 17471번 게리맨더링 17471번: 게리맨더링 선거구를 [1, 4], [2, 3, 5, 6]으로 나누면 각 선거구의 인구는 9, 8이 된다. 인구 차이는 1이고, 이 값보다 더 작은 값으로 선거구를 나눌 수는 없다. www.acmicpc.net 풀이 DFS를 사용해서 1번 선거구와 2번 선거구로 나누고 연결을 시켜 만약 연결이 안 된 지역이 있거나 모든 지역이 하나의 선거구로 이루어져 있다면 불가능한 방법이므로 이 경우를 제외한 인구의 최솟값을 구하게 하여 해결했습니다. 이때, 인구의 최솟값은 양수로 출력되야하므로 abs 즉, 절대값을 사용했습니다. 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; imp.. 2021. 5. 30.
[Java] BOJ 1600번 말이 되고픈 원숭이 1600번: 말이 되고픈 원숭이 첫째 줄에 정수 K가 주어진다. 둘째 줄에 격자판의 가로길이 W, 세로길이 H가 주어진다. 그 다음 H줄에 걸쳐 W개의 숫자가 주어지는데, 0은 아무것도 없는 평지, 1은 장애물을 뜻한다. 장애물이 있 www.acmicpc.net 풀이 BFS를 이용해서 해결했습니다. 이때, 한칸씩 움직이는 경우와 말처럼 움직이는 경우를 전부 구해야합니다. 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.LinkedList; import java.util.Queue; import java.util.StringTokenizer; public.. 2021. 5. 28.
[Java] BOJ 14502번 연구소 14502번: 연구소 인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크 www.acmicpc.net 풀이 DFS를 사용해서 벽을 둘 수 있는 모든 경우를 조사하고 벽 3개를 모두 세웠다면 배열을 복사한 후 DFS를 이용하여 바이러스를 퍼트리게 했습니다. 다음으로 DFS가 끝나면 바이러스가 퍼지지 않은 영역을 조사해서 안정 영역의 최댓값을 갱신하게 하여 해결했습니다. 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Linke.. 2021. 5. 27.