전체 글242 [백준] 3359: 사각 사각 - JAVA https://www.acmicpc.net/problem/3359 풀이DP문제이다. 사각형을 각각 가로로 놓을지 세로로 놓을지 정해서 위쪽 둘레의 최댓값을 찾는다. dp배열을 이차원배열로 만들어 현재 사각형을 가로로 놓는다면 [0]에, 세로로 놓는다면 [1]에 값을 넣는다. 옆면까지 생각해야한다. 이전 dp배열에서 선택안한 변과 현재 선택안한 변의 차이를 더해 최댓값을 현재 dp배열에 더해준다. 메모리: 14480KB시간: 140ms언어: Java 11import java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws IOException { BufferedReader b.. 2024. 5. 11. [백준] 3010: 페그 - JAVA https://www.acmicpc.net/problem/3010 풀이구현문제. o가 o 하나를 건너뛰어서 .에 도착하면 정답 개수 하나를 늘린다. o보다 .이 더 적을거라고 생각해서 .을 저장하였다. .주위를 사방탐색하여 o이면 한칸 더 가도 o일 때 정답 개수를 늘렸다. 메모리: 14240KB시간: 120ms언어: Java 11import java.io.*;import java.util.*;public class Main { static class Point { int r; int c; public Point(int r, int c) { this.r = r; this.c = c; } } stat.. 2024. 5. 11. [백준] 16986: 인싸들의 가위바위보 - JAVA https://www.acmicpc.net/problem/16986 풀이구현문제. 승패가 주어지고, 각각 어떤 어떤 동작을 할지 알려준다. 승패 테이블을 이용해 승,패를 판단하는 문제. 지우가 다른 동작들을 내면서 K승을 쌓으면 성공이다. 지우가 낼 동작을 순열을 통해 작성하고 게임을 진행한다. 지우가 K승 이상 쌓으면 true, 지우가 N번 이상 동작을 하면 같은 동작을 다시 내는 것이므로 false, 경희나 민호가 K승 이상 쌓으면 false이다. 메모리: 37796KB시간: 248ms언어: Java 11import java.io.*;import java.util.*;public class Main { static int N, K; static int[][] table; static.. 2024. 5. 11. [백준] 16938: 캠프 준비 - JAVA https://www.acmicpc.net/problem/16938 풀이비트마스크를 이용해 조합을 만드는 문제였다. 조합을 만들어 문제의 조건들을 비교해주었다. 비트마스크 조합int N = 3;int[] arr = {1, 2, 3}for(int i = 1; i 공집합을 제외하고 1~7까지 탐색한다. 예를 들어 6을 탐색하면 2진수로 6은 110이므로 배열에서 1번, 2번 인덱스의 값을 꺼낸다. 메모리: 14288KB시간: 128ms언어: Java 11import java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws IOException { BufferedReader b.. 2024. 5. 11. [백준] 4256: 트리 - JAVA https://www.acmicpc.net/problem/4256 풀이트리구조의 개념과 재귀를 물어보는 문제였다. 트리의 전위순회, 중위순회한 결과를 알려주고 후위순회한 결과를 찾아야한다. 전위순회: root -> left -> right 중위순회: left -> root -> right 후위순회: left -> right -> root 전위순회에서 맨 앞의 값이 후위순회에서의 맨 마지막 값이 된다. 전위순회의 맨 앞의 값을 중위순회에서 찾아 left그룹과 right그룹으로 나눠 재귀 탐색을 한다. 메모리: 157856KB시간: 644ms언어: Java 11import java.io.*;import java.util.*;public class Main { public static void main.. 2024. 5. 11. [백준] 1106: 호텔 - JAVA https://www.acmicpc.net/problem/1106 풀이dp문제. 고객수를 C명 늘려야 한다. 한 도시에서 한번의 비용으로 얻을 수 있는 고객의 수는 100이하이므로 C + 101 까지 dp배열을 만든다. 한 비용으로 얻을 수 있는 고객의 수를 value라고 할 때, "dp[j - value] + 비용"과 "dp[j]"의 최솟값을 dp[j]에 담는다. dp배열을 다 채운 후 인덱스가 C이상인 값들 중에서 최솟값을 찾는다. 메모리: 14224KB시간: 128ms언어: Java 11import java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws IOException { .. 2024. 5. 11. [백준] 2636: 치즈 - JAVA https://www.acmicpc.net/problem/2636 풀이구현 + 그래프탐색문제였다. 공기와 맞닿아있는 치즈는 한 시간이 지나면 녹는다. 치즈 내부에 구멍이 있을 수 있는데 외부 공기와 연결되어있지 않으면 치즈를 녹이지 않는다. 판의 가장자리는 치즈가 놓이지 않으므로 (0,0)은 항상 공기이다. (0,0)부터 시작하여 BFS탐색을 통해 공기면 Quque에 넣어주고, 치즈면 녹인다. ✔️참고 1.static int[] dr = { 1, -1, 0, 0 };static int[] dc = { 0, 0, 1, -1 }; 2.static int[][] vector = { { 0, 1 }, { 1, 0 }, { 0, -1 }, { -1, 0 } };사방탐색을 할 때 1번 코드보다 2번 코드로 하는 것.. 2024. 5. 11. [백준] 27377: 읽씹 멈춰! - JAVA https://www.acmicpc.net/problem/27377 풀이그리디문제였다. n개를 채워야 하는데 1번 추가는 s초, 현재 개수 곱하기 2는 t초가 걸린다. 최소 시간을 구하는 문제이다. n개부터 시작하여 -1, /2 하면서 0으로 만들면 된다. n이 홀수일때는 -1 을 해야하고, n이 짝수일때는 n / 2 * s 가 t보다 크다면 /2해주고, 아니라면 -1로 n을 채운다. s와 t가 10의 9제곱, n이 10의 18제곱이기때문에 BigInteger를 사용해야 한다. 메모리: 325656KB시간: 1380ms언어: Java 11import java.io.*;import java.math.BigInteger;import java.util.*;public class Main { public.. 2024. 5. 11. [백준] 25049: 뮤직 플레이리스트 - JAVA https://www.acmicpc.net/problem/25049 풀이dp문제. 처음부터 끝까지 한 번은 들어야 하므로 전체 수열의 값을 입력받으면서 더해준다. 앞으로 가면서 최대 부분합을 구해주고, 역방향으로 최대 부분합을 구해준다. [0 ~ i], [i + 1 ~ N - 1] 두 구간으로 나누어 i의 경우를 계산하여 최대값을 구하여 더해준다. - 참고: Kadane's Alogorithm 메모리: 81920KB시간: 824ms언어: Java 11import java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws IOException { BufferedReader br.. 2024. 5. 11. [백준] 28070: 유니의 편지 쓰기 - JAVA https://www.acmicpc.net/problem/28070 풀이누적합으로 풀 수 있는 문제이다. (입대 월)에는 배열에 +1을 해주고 (전역 월 + 1)에는 배열에 -1을 해준다. 2000년 1월부터 9999년 12월까지 돌면서 이전 배열의 것을 더해준다. 메모리: 81920KB시간: 824ms언어: Java 11import java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int N = I.. 2024. 5. 11. 이전 1 ··· 21 22 23 24 25 다음