[백준] 16637.괄호 추가하기 (java) / DFS, 백트래킹, 조합, 시뮬레이션
@DFS, 백트래킹, 조합, 시뮬레이션 / 3h 이상 간단한 문제라고 생각했는데, 조합에서 한번 헤매고, 계산하는 곳에서 한번 더 헤매서 처음 맞았을때는 도대체 왜 맞는지도 이해가 안됐었다. 재귀를 이용한 DFS 백트래킹 조합을 공부하는 기회가 됐다. 구현 방법 DFS, 백트래킹을 이용한 조합 구현 1. 괄호를 놓을 수 있는 곳은 3+ 8* 7- 9*2 이 네 곳(== 배열크기 N / 2)이다. 그런데 빨간 칸에 연속해서 괄호를 배치할 수는 없으므로, 괄호 개수를 0부터 - 가능한 최대 개수 까지 놓되, 인접한(붙어있는) 칸은 뽑지 않는 조합을 구하기로 했다. 2. 그런데 이 조합을 구하는게 생각보다 너무 어려워서, 결국 실패하고 도움을 받았는데, 바로 이 방법이다. (더 나은 방법은 4번 참고) 1) ..
2020. 2. 10.
[백준] 1647.도시분할계획 (java) / 크루스칼, Union-Find
@크루스칼, Union-Find / 51m 시간이 계속 터져서, 15분정도 고쳤다. 쉬운 문제인데 너무 어렵게 생각해서 좀 돌아갔다. 문제 링크 https://www.acmicpc.net/problem/1647 1647번: 도시 분할 계획 첫째 줄에 집의 개수N, 길의 개수M이 주어진다. N은 2이상 100,000이하인 정수이고, M은 1이상 1,000,000이하인 정수이다. 그 다음 줄부터 M줄에 걸쳐 길의 정보가 A B C 세 개의 정수로 주어지는데 A번 집과 B번 집을 연결하는 길의 유지비가 C (1 ≤ C ≤ 1,000)라는 뜻이다. www.acmicpc.net 구현 포인트 처음에는 배열에 값을 받고, Arrays.sort()로 정렬했는데 우선순위 큐로 다시 풀어보니 시간이 1초 이상 줄었다. (..
2020. 2. 2.
[백준] 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.