백준 연산자끼워넣기2 15658
연산자끼워넣기(2)15658 1. 컴퓨팅 스킬 DFS 재귀호출로 백트래킹으로 구해줍니다. 연산자끼워넣기 1번문제와 같은 원리입니다. 정답 또한 같습니다. 2. 컴퓨팅 사고 DFS 백트래킹 맨처음 dfs(v,1,v[0],plus,minus,multi,div); 호출할 때 왜 idx = 1로 시작하고, sum의 값을 v[0]의 값을 넘겨주는가에
연산자끼워넣기(2)15658 1. 컴퓨팅 스킬 DFS 재귀호출로 백트래킹으로 구해줍니다. 연산자끼워넣기 1번문제와 같은 원리입니다. 정답 또한 같습니다. 2. 컴퓨팅 사고 DFS 백트래킹 맨처음 dfs(v,1,v[0],plus,minus,multi,div); 호출할 때 왜 idx = 1로 시작하고, sum의 값을 v[0]의 값을 넘겨주는가에
1. 백준퇴사14501 2. 컴퓨팅 스킬 백트래킹 재귀호출 3. 컴퓨팅 사고 맨 처음에 조합으로 next_permutation을 사용해서 해당 T[i]만큼 false를 만들면서 오는 경우를 찾으면 어떨까 라고 생각하였지만, 직감적으로 쉽지않다는것을 느꼈습니다. 그래서 재귀함수로 풀어보자 라는 생각으로 풀게되었습니다. 이 부분이 가장 중요한 부분입
1. 백준 부분수열의합 1182 2. 컴퓨팅적 스킬 재귀호출 사용, 조합 사용 3. 컴퓨팅적 사고 next_permutation을 사용한 조합을 이용한 풀이 방법 1 순열과 조합중 조합을 사용하여 각각의 부분집합의 경우를 모두 구해준다. 하나씩 check변수에 모든 값을 true로 바꾸어준 후, 맨 앞에 있는 값들을 false로 바꾸면서 모든
1. 백준암호만들기1759 2. 컴퓨팅 스킬 Recursive를 활용한 풀이 백트래킹 두가지 방법으로 풀겠습니다. include헤더에 sort함수를 사용하겠습니다. 그 이유는 사전식으로 가능성 있는 암호를 모두 출력한다. 라는 조건이 있기 때문입니다. 3. 컴퓨팅 사고 조합의 방식으로 풀어야합니다. 어떻게 조합으로 풀어야된다는 생각을 하였을까요
1. 연산자끼워넣기14888 2. 컴퓨팅 스킬 next_permutation 값을 저장 시킬 vector v; 연산자의 개수를 1,2,3,4 의 값으로 넣을 vector cal; #include헤더에 minmax_element으로 최대값과 최소값 구해줍니다. DFS 재귀호출로 백트래킹으로 구해줍니다. 3. 컴퓨팅 사고 next_per
1. 로또6603 2. 컴퓨팅 스킬 vector check 변수에 6개를 뽑는 경우의 수 이므로, k-6개만큼은 0을 푸쉬백 해주고, 6개까지에 1을 넣어줍니다. check배열로 next_permutation을 수행합니다. true인경우가 조합을 구하는 경우의 수입니다. 테스트케이스를 돌면서 vectorv, vector check의 값의 초기화값을 잘
1. 백준외원판순회2 10971 2. 컴퓨팅 스킬 W[i][j]는 도시 i에서 도시 j로 가기 위한 비용이므로 모든 경우의 수 완전탐색을 수행합니다. N까지의 값을 vector에 넣어서 next_permutation을 수행합니다. next_permutation을 수행하는이유는 예를 들어 N이 4라고 하였을 경우 0,1,2,3까지의 값들을 vector에
1. 백준 1,2,3더하기 9095 2. 컴퓨팅적 스킬 DFS 재귀함수 이용 vector에 테스트케이스 개수만큼의 값들을 넣어준 후, 반복문을 통해 각 경우에 대한 dfs를 호출하여 최종적으로 리턴되는값은 1,2,3으로 만들 수 있는 n에 대한 경우의 수입니다. dfs를 이해하기에 가장 좋은 예중 하나는 n과m문제입니다. 순열과 조합에 대표적인 문제입
1. 백준 차이를최대로 10819 2. 컴퓨팅 스킬 #include헤더에 있는 next_permutation()함수를 호출하여 순열과조합을 구현합니다. next_permutation : 현재 나와 있는 수열에서 인자로 넘어간 범위에 해당하는 다음 순열을 구하고 true를 반환한다. 다음 순열이 없다면(다음에 나온 순열이 순서상 이전 순열보다 작다면)
1. 백준 일곱난쟁이 2309 2. 컴퓨팅적 스킬 do while ~ (next_permutation)으로 계속해서 다음 조합의 경우의 수를 찾는다. vector v, check변수를 선언하여 permutation을 수행한다. 9명중 7명을 뽑아야하므로 7명만큼 check=true로 변경해서 수행한다. next_permutation을 수행하면서 값들이