전체 글103 백준 14888번 연산자끼워넣기 JAVA 백트래킹을 이해했다면 어렵지 않은 문제다. 백트래킹은 기본적으로 dfs에서 깊이를 들어가다가 깊이 끝까지 들어가면 리턴해서 stack에서 pop하고 거기서 다른 선택지가 있다면 다시 그곳을 탐색해서 전체 탐색을 하는 방식이다. 연달아 두문제를 푸니까 이제 좀 감이 오는 느낌.. import java.io.*; import java.util.*; public class Main { static int[] numbers; static int MAX=-999999999; static int Min=999999999; static int n; public static void dfs(int[] opers, int sum,int point){ if(point==n){ MAX=Math.max(MAX,sum); Mi.. 2020. 10. 11. 백준 2239번, 2580번 JAVA 하하하핳 백트래킹으로 잘 풀면된다. 예제가 맞는데 틀렸던 이유는 return 조건을 예제에 맞춰서 51일시에 true를 리턴해버려서 발생한 어처구니 없는 실수였다.. 백트래킹을 이제야 제대로 이해한듯 하다. 핵심은 재귀는 결국은 스택인데 만약 조건을 만족시키지 못하면 이전 스택으로 돌아가서 List에 저장된 요소(숫자가 채워져있지 않는 부분)을 다시 체크하면서 다시 스택을 쌓아가고 모두 풀었으면 true를 반환해서 스택을 모두 스킵해버린다. 2239번과 2580번은 단순히 입력과 반환을 어떻게 하느냐의 차이. import java.io.*; import java.util.*; class XY{ int x; int y; XY(int x, int y){ this.x=x; this.y=y; } } public.. 2020. 10. 10. 백준 18353번 병사 배치하기 JAVA 어렵진 않은 문제였다. 가장 긴 증가 수열을 찾고 최대 증가 수열에 포함되지 않는 숫자를 구하면 됨으로 어렵진 않은 문제였다. 가장 긴 증가 수열을 찾고 최대 증가 수열에 포함되지 않는 숫자를 구하면 됨으로 "배열의 길이 - 가장 긴 증가 수열" 을 하면 답이 나온다. 점점 DP에 감을 잡아가는건가.. import java.io.*; import java.util.Arrays; import java.util.Collections; import java.util.Comparator; import java.util.StringTokenizer; import java.util.function.ToIntFunction; import java.util.stream.Collectors; public class Ma.. 2020. 9. 29. 백준 1259번 팰린드롬수 JAVA 너무 쉬운문제라 풀이 생략! import java.io.*; import java.lang.reflect.Array; import java.util.*; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); ArrayList testcase = new ArrayList(); ArrayList answer = new ArrayList(); StringTokenizer st; String a; while (true){ a=br.readLine(); if(a.equals("0")){ brea.. 2020. 9. 28. 이전 1 ··· 17 18 19 20 21 22 23 ··· 26 다음