백트레킹 2

[자바] 백준 14888번 연산자 끼워넣기. 2021-07-08

일단 매우 어려운 문제였다. 백트레킹을 오랜만에 해서 그런지, 아니면 순열, 조합 구하기 같은 기본적인 백트레킹 문제만 풀어봐서 그런지, 알고리즘 큰 틀에서 풀이법은 바로 알았지만, 그걸 구현하지 못하여서 실패했다.. 그나마 이해했는데 마지막에 oper 함수의 값을 다시 올려줘야 하는 이유를 이해하지 못했지만, 내가 기존에 순열 문제를 푼 기억을 되살려 알게 되었다. 풀이는 코드 옆에 주석으로 다 해놨다. 이 문제를 통해 백트레킹의 실제 상황에서의 적용하는 법을 알게 된거 같다. 이 문제의 핵심은 "깊이"우선 탐색을 어떤 식으로 구현할 것인가 인데, 연산자의 인덱스를 연산자 취급을 하고, 연산자의갯수를 한번 쓸떄마다, dfs로 한층 더 깊게 들어가는 구현법이 가장 핵심인거 같다. import java.u..

무작위로 주어진 수들의 순열,조합 구하기. (백트레킹) 2021-06-10

우선적으로 사용자로부터 N과 M 입력 값을 받는다. 그리고, 연산의 대상이되는 수들을 사용자로부터 N개 입력받는다. N P M을 구해보겠다. 우선 순열이나, 조합 모두 dfs의 방법중 하나인 백트레킹을 이용한다. 1.모든 노드를 탐색해야한다. 2.노드 탐색의 조건이 있다.(한번 방문한 노드는 방문하지 않는다. 그러므로 dfs를 통한 백트레킹 방법을 이용한다. import java.io.*; import java.util.*; public class Main { static int[] arr; static int[] output; static boolean[] value; static int N; static int M; public static void main(String[] args) throws I..