[백준/C++] 1182번: 부분수열의 합 (DFS)
주의점 1) 연속된 수의 합을 찾는 것이 아니다. ex) N=4, sum=0, arr=[100, 100, 100, -100]일 때, 연속된 수의 합이라면 답이 1개이다. 하지만 (100,-100)조합이 3번 가능하므로 답이 3개이다. 주의점 2) 부분집합의 합이 아니니 중복이 포함된다. ex) N=4, sum=1, arr=[1, -1, 1, 2]일 때, 부분집합의 합이라면 [1], [-1, 2], [1, -1, 1]로 답이 2개이다. 하지만 첫번째 1과 세번째 1은 다른 1로 처리해야한다. 그래서 [1], [1], [-1, 2], [1, -1, 1]로 답이 4개이다. #include #include #include using namespace std; int N, sum; vector arr; int c..
[백준/C++] 13460번: 구슬 탈출2 (어려워)
삼성가기 어렵다... 하루종일 붙잡고 있었다. 유튜브보고 따라 품.... 다시 정리해야겠다. #include #include #include using namespace std; //얘가 큐에 넣는애 struct INFO { int rx, ry, bx, by, cnt; }; INFO start; string map[11]; int dx[] = { 1,0,0,-1 }; int dy[] = { 0,1,-1,0 }; int bfs() { int visit[10][10][10][10] = { 0 }; queue q; q.push(start); visit[start.rx][start.ry][start.bx][start.by] = 1; int ret = -1; while (!q.empty()) { INFO cur ..