문제 적당한 가지치기를 해야하는 dfs 문제였다 처음엔 완전탐색(부분집합)으로 풀었다 1. 두께별로 하나하나 방문해서 방문하고있는 위치를 전부 0, 1 (A, B)로 바꾼다. 2. 기저에 도달하면 완성된 필름을 검사하여 k만큼 연속되어있는지 확인한다 3. k만큼 연속되지 않은 것이 발견된다면 곧바로 검사를 종료하고, 전부 k만큼 연속되어있다면 주입한 약품의 수를 이용해 min값을 업데이트 한다. 🗝키포인트 dfs진행 시, 현 시점에서 주입한 약품의 수가 min보다 크거나 같다면 더이상 탐색할 필요없이 최소가 될 수 없으므로 탐색을 하지 않도록 한다. min이 뭔데? 지금까지 필름을 완성해왔을 때, 사용했던 약품의 수 중 최솟값 코드 import java.io.BufferedReader; import ja..
문제 - (https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWqUzj0arpkDFARG&categoryId=AWqUzj0arpkDFARG&categoryType=CODE) 전형적인 dfs 문제였다 dy,dx를 이용한 4방 탐색을 사용했다 한번 방문했던 곳에서 본 명물을 visited에 추가하고, 다음번 방문 하는 곳에 봤던 명물이 있다면 그 곳은 방문하지 않는다 📌주의할 점 visited처리를 어떻게 할까 고민하다가 처음엔 ArrayList를 사용했다. 리스트에 add, remove를 사용하려고 했는데 문제가 생겼다. ArrayList형 리스트의 경우 list.remove( map[y][x] ) 를 하게되면 cha..
- Total
- Today
- Yesterday
- withCredentials
- 시뮬레이션
- BOJ
- 재귀
- 인구이동
- 16234
- 사다리 조작
- 백준
- dfs
- 드래곤 커브
- Greedy
- 브라우저 요청
- Access-Control-Allow-Origin
- 코딩테스트
- 아기상어
- 큰 수 만들기
- 우선순위큐
- 코테
- 완전탐색
- 프로그래머스
- 구명보트
- 자바
- 그리디
- 톱니바퀴
- 코딩테스트 연습
- java
- 배열순회
- header
- 14891
- 구현
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |