2025/02 37

[백준 1988] 낮잠 시간 - JAVA

https://www.acmicpc.net/problem/1988 dp문제 처음에 누적합이 떠올랐는데조합으로 원소 뽑으려면 3000!/(3000-n)! * n!이여서 불가능했다. 이후 문제분류 보고 풀음  처음엔 dp[N+1][B+1][2][2]  = dp[N][B][잠 or 안잠][ 준비 or 준비아님]로 생각했다가경우의 수를 구체화 하다보니 더 간결하게 만들 수 있었고, 다음과 같은 식을 세우고 풀었다.// 1. 잠을 잔 경우s[n][b] = Math.max(ns[n-1][b-1], s[n-1][b-1] + cost[n]);// 1-1. 안잤었음, 잠횟수 소모, 안잤었으니 준비 시간임ns[n-1][b-1]// 1-2. 잤었음, 잠횟수 소모, 잤었으니 준비 시간 아님s[n-1][b-1] + cost[n..

[백준] PS/Java 2025.02.27

[백준 1937] 욕심쟁이 판다 - JAVA

https://www.acmicpc.net/problem/1937  이전 문제랑 거의 똑같다.https://sh3542.tistory.com/251 [백준 1520] 내리막 길 - JAVAhttps://www.acmicpc.net/problem/1520 두 코드를 비교했을 때,재귀적으로 경로를 찾아가는 것은 동일하다.다만, 방문처리 (코드에선 -1 or 0)을 하지 않으면 불필요한 재귀가 반복되어 시간초과였다. ACimporsh3542.tistory.com dp[r][c] = 1은 지역을 방문했다는 것은 그 지역의  대나무를 먹었다는 뜻이기에 +1 하는 의미도 있고,방문하지 않았음 (dr[r][c] = 0)일 때 와 구분하는 역할도 한다. 처음부터 배열을 1로 채우면 불필요한 탐색이 추가되므로 시간초과를..

[백준] PS/Java 2025.02.25

[백준 1520] 내리막 길 - JAVA

https://www.acmicpc.net/problem/1520 두 코드를 비교했을 때,재귀적으로 경로를 찾아가는 것은 동일하다.다만, 방문처리 (코드에선 -1 or 0)을 하지 않으면 불필요한 재귀가 반복되어 시간초과였다. ACimport java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.Arrays;import java.util.StringTokenizer;class Main { static int solve(int r, int c) { if (dp[r][c] != -1) { return dp[r][c]; } if (r == 0 && c == 0..

[백준] PS/Java 2025.02.25

[백준 1501] 영어 읽기 - JAVA

https://www.acmicpc.net/problem/1501 같은 단어려면1. 0번째와 len-1번째 알파벳이 같음2. 사용된 알파벳 개수가 같음 판별하려면 1번을 Pos 클래스로 놓음2번을 알파벳별로 카운팅 하는 대신 정렬해서 key로 씀 Map> 사용 이후 M개의 문장을 공백기준으로 파싱하고, 각각 정렬해서 key로 씀map에 key가 있으면 Pos List 비교해서 정답 누적후 출력 import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.ArrayList;import java.util.Arrays;import java.util.HashMap;import jav..

[백준] PS/Java 2025.02.22

[백준 1743] 음식물 피하기 - JAVA

https://www.acmicpc.net/problem/1743 그래프 탐색 문제 인접한 '#'끼리 붙여 도형을 만들었을 때, 넓이가 가장 큰 것(의 넓이) 출력 import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.ArrayDeque;import java.util.Queue;import java.util.StringTokenizer;class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamR..

[백준] PS/Java 2025.02.20

[백준 1682] 돌리기 - JAVA

https://www.acmicpc.net/problem/1682 BFS + 문자열 처리 + 약간의 공간지각능력? = 끔찍함 vst + 가지치기 + DFS로 작성하다 실행속도 보고 안돼서 바꿈 다음은 각각 커맨드를 실행했을 때 배열의 순서이다. i번째 숫자와 charAt(i-1)이 대응됨을 기억하면 그나마 수월했다. A:87654321 B:41236785 C:13645728 D:52341678 import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.ArrayDeque;import java.util.HashSet;import java.util.Queue;import jav..

[백준 1778] Ubiquitous Religions - JAVA

https://www.acmicpc.net/problem/1778 분리 집합 문제 유니온-파인드로 분리 집합을 구성하고, 나올 수 있는 부모의 가짓수를 출력 import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.Arrays;import java.util.HashSet;import java.util.Set;import java.util.StringTokenizer;class Main { static int[] p; public static void main(String[] args) throws IOException { BufferedReader br = new..

[백준 1755] 숫자놀이 - JAVA

https://www.acmicpc.net/problem/1755 N-M구간 숫자에 대해 영어로 맵핑한 값으로 정렬, 숫자로 출력하는 문제 import java.util.ArrayList;import java.util.Arrays;import java.util.Collections;import java.util.Comparator;import java.util.HashMap;import java.util.List;import java.util.Map;import java.util.Scanner;class Main { static class Num { String v; String s; Num(String v, String s) { this.v = v; this.s = ..

[백준 1503] 세 수 고르기 - JAVA

https://www.acmicpc.net/problem/1503 브루트포스 문제 x,y,z 가능 범위 구하는게 메인이고, 가지치기 안해도 아슬하게 통과함import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.StringTokenizer;class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringToke..