본문 바로가기

dfs10

[백준] 16637.괄호 추가하기 (java) / DFS, 백트래킹, 조합, 시뮬레이션 @DFS, 백트래킹, 조합, 시뮬레이션 / 3h 이상 간단한 문제라고 생각했는데, 조합에서 한번 헤매고, 계산하는 곳에서 한번 더 헤매서 처음 맞았을때는 도대체 왜 맞는지도 이해가 안됐었다. 재귀를 이용한 DFS 백트래킹 조합을 공부하는 기회가 됐다. 구현 방법 DFS, 백트래킹을 이용한 조합 구현 1. 괄호를 놓을 수 있는 곳은 3+ 8* 7- 9*2 이 네 곳(== 배열크기 N / 2)이다. 그런데 빨간 칸에 연속해서 괄호를 배치할 수는 없으므로, 괄호 개수를 0부터 - 가능한 최대 개수 까지 놓되, 인접한(붙어있는) 칸은 뽑지 않는 조합을 구하기로 했다. 2. 그런데 이 조합을 구하는게 생각보다 너무 어려워서, 결국 실패하고 도움을 받았는데, 바로 이 방법이다. (더 나은 방법은 4번 참고) 1) .. 2020. 2. 10.
[백준] 15684.사다리 조작 (java) / DFS, 백트래킹 @DFS, 백트래킹 / 3h 예전에 풀었던 문제인데, 처음 풀 때는 진짜 잘 풀었었는데 이번에는 2시간 넘도록 통과도 못했다..ㅠㅠ 계속 틀렸습니다 뜨고 ㅎㅎ 실력이 퇴보한건가.. 결국 예전 코드 + 다른 코드를 참고해서 다시 짰다. 문제 링크 https://www.acmicpc.net/problem/15684 15684번: 사다리 조작 사다리 게임은 N개의 세로선과 M개의 가로선으로 이루어져 있다. 인접한 세로선 사이에는 가로선을 놓을 수 있는데, 각각의 세로선마다 가로선을 놓을 수 있는 위치의 개수는 H이고, 모든 세로선이 같은 위치를 갖는다. 아래 그림은 N = 5, H = 6 인 경우의 그림이고, 가로선은 없다. 초록선은 세로선을 나타내고, 초록선과 점선이 교차하는 점은 가로선을 놓을 수 있는 점.. 2020. 2. 3.
[백준] 17472.다리 만들기 2 (java) / 크루스칼, Union-Find, DFS, BFS, 시뮬레이션 @ 크루스칼, Union-Find, DFS, BFS, 시뮬레이션 / 1h 30m 9월 삼성 SW 역량테스트 2번 문제 종이에 쓰는시간 30분을 포함해서 1시간만에 풀었는데 몇가지 실수해서 디버깅하느라 +30분 걸렸다. 다익스트라, DFS 등 여러 개념을 이용해서 풀 수 있는 좋은 문제인 것 같다. 약간 어려운 편. 문제 링크 https://www.acmicpc.net/problem/17472 17472번: 다리 만들기 2 첫째 줄에 지도의 세로 크기 N과 가로 크기 M이 주어진다. 둘째 줄부터 N개의 줄에 지도의 정보가 주어진다. 각 줄은 M개의 수로 이루어져 있으며, 수는 0 또는 1이다. 0은 바다, 1은 땅을 의미한다. www.acmicpc.net 구현 방법 1. 먼저 각 섬들에 단지번호붙이기 방법.. 2020. 2. 1.
[SWEA] 2105.디저트 카페 / DFS @DFS / 35m 쉬운 문제였다. 그런데 마지막 사각형이 만들어질 때 예외처리를 해주지 않으면 직사각형이 아닌 다른 모양으로 만들어져서, 테케가 틀리게 나온다. 그 부분만 신경쓰면 끝나는 문제. 문제 링크 https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5VwAr6APYDFAWu SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 구현 방법 # 문제의 화살표 방향과 반대로 구현했을 때의 풀이방법이다. (별 의도는 없고 하다보니..) 1. 사각형에서 제일 위에 있는 점에서 시작했다. 이중 for문을 돌면서 (이때 세로는 0 2020. 1. 28.
[SWEA] 1949.등산로 조성 (java) / DFS @DFS / 40m 최근 너무 어려운 시뮬레이션 문제들만 풀어서 이것도 어렵겠거니 겁먹고 풀었는데 엄청 쉬워서 약간 이게 끝인가..? 놓친거 있는거 아닌가..? 이러면서 풀었다. 행-복 문제 링크 https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5PoOKKAPIDFAUq SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com # 구현 포인트 깎을 수 있는 횟수를 매개변수로 들고다니면서 횟수가 남아있다면, 이동하다가 막힐 때(가려는 곳이 이전 높이와 같거나 클 때) 깎고 이동하는 것이다. if (깎을 수 없을 경우) { if (.. 2020. 1. 25.