본문 바로가기
[JAVA] 백준 2589 - 보물섬 https://www.acmicpc.net/problem/2589N X M 지도가 주어지면, 보물의 위치의 최단거리를 구하는 문제이다. 근데 보물의 위치가 최장거리라서 사실 MAX값 구하기 문제이다.N과 M의 크기가 50으로 작아서 완전탐색으로 BFS를 돌렸다.import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.Arrays;import java.util.LinkedList;import java.util.Queue;public class Main { static int[] dx = {0,0,1,-1}; static int[] dy = {1,-1,0,0}; .. 2025. 10. 20.
[JAVA] 백준 2151 - 거울 설치 https://www.acmicpc.net/problem/2151 집 안에 거울을 설치해서 한쪽 문에서 다른 쪽 문을 거울을 통해 바라볼 수 있게 되는 거울 설치 개수의 최솟값을 구하는 문제이다.처음에는 거울이 45도 기울어졌대서 대각선 이동인줄알고 그렇게 작성했는데 보니까 거울이 45도로 기울어져 있으면 빛의 진행방향이 90도 꺾이는 구조였다. 빈 공간을 만난 경우 진행했던 방향으로 계속 직진을 해야하고, 거울을 설치할 수 있는 공간을 만나면 설치하지 않고 빈 공간처럼 진행하거나, 입장 방향의 수직방향으로 꺾어서 진행할 수 있다.따라서 진행 방향을 저장해야했고, 진행 방향별 방문체크와 가중치를 저장하면서 진행했다.도착지점은 최대 4방향에서 접근 가능하므로 dist배열에 4방향의 최소 가중치를 저장한 뒤.. 2025. 10. 19.
[JAVA] 백준 3671 - 산업 스파이의 편지 https://www.acmicpc.net/problem/3671주어진 최대 7개의 숫자로 만들수 있는 소수의 개수를 출력하는 문제이다.만들수 있는 숫자의 최댓값이 9,999,999이므로 1천만 이하의 수에서 에라토스테네스의 채로 소수를 거르고,DFS로 최댓값 이내로 모든 경우를 탐색 후 중복 없는 소수의 개수를 출력했다.import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.*;public class Main { static boolean[] era = new boolean[10000000]; static int count = 0; static Hash.. 2025. 10. 19.
[JAVA] 백준 1720 - 타일 코드 https://www.acmicpc.net/problem/17202XN 타일을 각각 1X2, 2X2, 2X1 타일로 채우는 방법의 가짓수를 구하되, 대칭인 경우는 1개로 취급하는 가짓수를 구하는 방법이다. 전체 가짓수를 구하고, 대칭인 가짓수를 제외해주면 되는데, 홀수인경우 대칭이려면 가운데 1X2타일을 끼고 대칭인 케이스밖에 없고, 짝수인 경우는 절반이 완전히 대칭인 케이스와 가운데에 2칸을 낀 상태로 나머지 칸들이 대칭인 경우가 있다.2칸을 채우는 방법은 2X2 혹은 2X1두개를 이용해 채울 수 있다. 1X2두칸은 절반이 완전히 대칭인 케이스에 포함이라 제외했다. import java.io.BufferedReader;import java.io.IOException;import java.io.Input.. 2025. 10. 18.