문제풀이/백준83 [JAVA] BOJ 백준 2133번 - 타일 채우기 목차 문제 내가 푼 방법 자바 코드 결과 및 회고 1. 문제 https://www.acmicpc.net/problem/2133 2. 내가 푼 방법 다른 분들의 풀이를 보고 이해한 뒤, 내 방식으로 규칙을 찾은 문제이다. N = 1일 때, 불가능 N = 2일 때, 3가지 N = 3일 때, 불가능 N = 4일 때, 9가지 : dp[2] x dp[2] : 예외 2가지 N = 6일 때, : dp[4] x dp[2] : dp[2] x dp[4]예외(2가지) : 예외 2가지 N = 8일 때, : dp[6] x dp[2] : dp[2] x dp[6]예외(2가지) : dp[4] x dp[4]예외(2가지) : 예외 2가지 처음에 헷갈렸던 부분을 N = 6을 예시로 설명하자면 dp[2] x dp[4]예외(2가지) dp[4.. 2023. 10. 29. [JAVA] BOJ 백준 9328번 - 열쇠 목차 문제 내가 푼 방법 자바 코드 결과 및 회고 1. 문제 https://www.acmicpc.net/problem/9328 2. 내가 푼 방법 문제에 나와있는 기능들을 실수 없이 구현한다면 어렵지 않은 문제라고 생각한다. 일단 나는 빌딩 바깥에서 출입할 수 있는 출입 위치를 먼저 가져왔다. 그 후에 문서를 훔치는데 열쇠 개수가 더 이상 늘어나지 않을 때까지 문서를 훔치기 위한 출입을 반복한다. public static void solution() { // 바깥에서 들어갈 수 있는 위치 가져오기 List inOut = getInOutSite(); // 문서 훔치기 while (true) { int keyCnt = key.size(); for (Tuple start : inOut) { steal(star.. 2023. 10. 29. [JAVA] BOJ 백준 1103번 - 게임 목차 문제 내가 푼 방법 자바 코드 결과 및 회고 1. 문제 https://www.acmicpc.net/problem/1103 2. 내가 푼 방법 간단한 DFS문제이다. 하지만 시간 초과를 고려해야 한다. 무한번 움직이는 경우를 찾기 위해 3차원 boolean 배열인 visit을 선언해 주었고, 시간초과를 해결하기 위해 3차원 integer 배열인 cnt를 선언해 주었다. public static void solution() { boolean[][][] visit = new boolean[N][M][4]; int[][][] dp = new int[N][M][4]; for (int i = 0; i < 4; i++) { dfs(0, 0, i, dp, visit, 1); } } 이제 dfs 함수에서 게임이 끝.. 2023. 10. 29. [JAVA] BOJ 백준 2615번 - 오목 목차 문제 내가 푼 방법 자바 코드 결과 및 회고 1. 문제 https://www.acmicpc.net/problem/2615 2. 내가 푼 방법 전형적인 BFS 문제이다. 3차원 배열인 visit을 선언해 이미 방문한 적 있는 위치일 경우에는 뛰어넘도록 코드를 작성했다. 상+하, 좌+우, 대각선 2개로 뻗어나가는 방향을 합쳐서 카운팅해야하기 때문에, bfs 함수 안에서 cntArr 배열에 각 방향으로 뻗어나가는 위치를 카운팅해줬다. cntArr 배열을 PriorityQueue로 선언해 준 이유는 x가 가장 작은 위치(x가 같을 경우 y가 가장 작은 위치)를 반환해주기 위해서이다. 큐가 돌아갈 때 direction은 상/하/좌/우/대각선 4개 포함해서 0~7을 갖고 있고, oneDirection은 상하/.. 2023. 10. 1. [JAVA] BOJ 백준 5525번 - IOIOI 목차 문제 내가 푼 방법 자바 코드 결과 및 회고 1. 문제 https://www.acmicpc.net/problem/5525 2. 내가 푼 방법 다른 분의 풀이를 보고 해결한 문제이다. 이 문제의 관건은 IOI 문자열과 매칭될 경우, 처음 I와 매칭되는 위치에서 + 2를 해주어야 한다는 것이다. 3. 자바 풀이 깃허브 풀이 주소 https://github.com/geujeog/BOJ/blob/main/B5525.java import java.util.*; import java.io.*; class Main { static int N; static int M; static String line; static int result; public static void main (String[] args) th.. 2023. 10. 1. [JAVA] BOJ 백준 17135번 - 캐슬 디펜스 목차 문제 내가 푼 방법 자바 코드 결과 및 회고 1. 문제 https://www.acmicpc.net/problem/17135 2. 내가 푼 방법 나는 각 턴마다 궁수를 죽이는 우선순위를 먼저 구한 후에 풀이를 진행했다. 여기서 턴은 마지막 적이 격자판을 넘어가 사라질 때까지의 과정을 얘기한다. (즉, 0 ~ N-1 차례가 있음) 따라서 아래 전역 변수들을 먼저 설명하자면, N, M, D는 문제에 나와있는 값들을 그대로 대입했고, arr 배열은 각 턴마다 적의 위치를 담은 Tuple 클래스 배열, dieTime 배열은 궁수가 각 턴에 적을 죽일 때 우선순위를 담고 있다. Tuple 클래스는 적이므로, 각 적들마다 num 멤버 변수를 통해 고유값을 부여하고, far 멤버 변수를 통해 추후에 궁수와 적 사.. 2023. 10. 1. 이전 1 ··· 6 7 8 9 10 11 12 ··· 14 다음