본문 바로가기

분류 전체보기237

백준 [자바 java] 14888번 : 연산자 끼워넣기 이 문제는 숫자 사이사이에 주어진 연산자를 끼워 넣어 최댓값과 최솟값을 구하는 문제입니다. 특이한 점은 연산자 우선순위를 무시한다는 점이었습니다. import java.io.*; import java.util.*; class Main { static int cnt = 0; static int[] k ; static boolean[] visit; static int[] po; static int max = -1000000000; static int min = 1000000000; static int[] l ; static void arr2() { int i; int hap = k[0]; for(i = 0; i 2022. 8. 1.
백준 [자바 java] 백준 2156 : 포도주시식 이 문제는 딱봐도(?) 다이나믹프로그래밍 문제이다. 조금 주의할 점이 있다면 연속으로 세 잔 이상 마실수 없다는 것! import java.io.*; import java.util.*; class Main { public static void main(String[] arg) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader (System.in)); int n = Integer.parseInt(br.readLine()); int arr[] = new int[n+1]; int[] dp1 = new int[n+1]; int[] dp2 = new int[n+1]; int i; for(i = 1;i 2022. 7. 31.
백준 [자바 java] 백준 10844 : 쉬운 계단 수 처음 이 문제를 봤을 때는 무슨 말인지 이해가 잘 되지 않아서 여러번 읽어봤다. 한마디로 n자리수들 중에서 인접한 수의 차이가 모두 1인 수들의 갯수를 구하라는 문제이다. 예를 들어 n이 2일 때 10,12,21,23,32,34...이런 수들이 있고 이들의 개수를 출력해야 하므로 출력 값은 17이다. 처음에는 수학적 공식(?)이 dp보다 훨씬 간편할 것이라고 생각했지만 그건 나의 착각이었다. 앞에는 쫌 잘 돌아갔지만 25까지만 돌아가고 뒤에는 거의 안 돌아갔다. 당연히 시간 초과가 났고 이런저런 약간의 조치를 취했지만 해결되지는 않았다ㅜ 결국 다 지우고 dp로 해결해보았다. 2차원 배열을 만든 후 세로축은 0부터 9 그리고 가로 축은 자릿수를 의미한다. 일의 자릿 수에서 끝이니까 dp[i][1]은 다 1.. 2022. 7. 31.