2025/04/02 2

[백준/Java] 14888번 : 연산자 끼워넣기

문제https://www.acmicpc.net/problem/14888n개의 숫자와 n-1개의 연산자가 주어졌을 때숫자의 순서를 유지한 채 연산자의 순서만 바꿔서 계산한 결과의 최댓값, 최솟값을 찾는 문제이다.풀이재귀, 백트래킹으로 풀면 되겠다고 생각했는데 뭔가 연산자를 저장하고 있는 배열과 숫자를 저장하고 있는 배열이 달라서 설계하기 헷갈렸다.  n-1개의 연산자를 모든 순서로 선택하는 방법은 해당 연산자를 선택하거나 선택하지 않거나 둘 중 하나이므로특정 연산자를 선택하고 재귀로 넘긴 후 다시 선택하지 않는 상태로 백트래킹시키고 다음 연산자를 선택하게 만들면 된다.4개의 연산자 중 i번째 연산자를 선택했으면 i번째 연산자의 숫자를 1 감소시키고 백트래킹할 때는 다시 1 증가시킨다.선택한 연산자를 사용하..

정글/알고리즘 2025.04.02

[백준/Java] 21606번 : 아침 산책

문제https://www.acmicpc.net/problem/21606N개의 노드와 N-1개의 간선으로 이루어진 그래프가 있다.각 노드는 실내(1) 또는 실외(0)에 해당한다.출발 노드, 도착 노드가 실내이고 그 사이에 존재하는 노드들이 모두 실외인 경로가 몇 개인지 구하는 문제이다.풀이처음 아이디어처음에는 간선의 양쪽이 실내/실외로 다른 경우 간선 가중치를 1로 두고간선의 양쪽이 모두 실내인 경우 간선 가중치를 0으로 둬서모든 경로를 찾은 후 경로의 가중치 합이 0 또는 2가 되면 되지 않나...라는 아이디어를 떠올렸다. 그리고 실내를 시작점으로 두고 bfs 탐색 하는 방식으로 찾으면 될 것 같았다. 그러나 N의 최대값이 너무 크기 때문에 (2모든 경로를 3초 안에 브루트포스로 탐색할 수 없다.코드im..

정글/알고리즘 2025.04.02