일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 직무면접
- MySQL
- 삼성
- englishbook
- 코테
- 완전탐색
- PyQt
- STUDYENGLISH
- 백준
- D4
- 코테 준비
- 코테 대비
- 원서
- 원서읽자
- SQL
- 프로그래머스
- dfs
- 쉬운 알고리즘 문제
- swexpertacademy
- nightroutine
- sw expert
- sw expert academy
- 알고리즘 문제
- 알고리즘
- 원서읽기
- English
- BFS
- readingbook
- the midnight library
- 코딩테스트
- Today
- Total
목록완전탐색 (16)
시나브로
이 문제는 완전탐색문제의 하나의 과정을 추가한 문제이다. 문제 요약 ) 각 빙산의 값(matrix에 있는 숫자값)은 시간이 지남에 따라 4방(상/하/좌/우)에 0의 갯수만큼 녹는다. 시간이 지남에 따라 빙산이 녹을 때, 한 덩어리의 빙산이 2개 이상으로 나눠지는 순간을 찾아라. 문제요약 1은 완전탐색 BFS을 이용하여 쉽게 구현할 수 있다. 여기서 유의점은 순차 탐색을 하면서 (i,i)이 녹아 0이 되었을 때, 다음값인 (i,i+1)에서는 (i,i)값을 녹았다고 생각하면 안된다. 그 이유는 동시에 녹기 때문에 (i,i+1)값을 계산할 때 (i,i)값이 있다고 생각한다. 문제요약 2의 경우, 처음에 빙하의 총 갯수를 구해놓고, 빙하가 녹을 때마다 개수를 조정한다. 그리고 하나의 시간 단위가 지났을 때, 아..
이 문제의 경우, 추천하지 않습니다. 이 문제는 기본의 완전탐색에 조건이 하나가 추가된 문제입니다. 완전탐색문제의 경우, 구현을 연습하는 문제입니다. 하지만, 이 문제의 추가된 조건은 구현시 실력향상에 도움이 되기 어려우며, 조건을 구현하는 방법이 단일적이기 때문입니다. 또한, 문제도 애매모호하며, 다수의 문제에 대한 의문점을 가질 수 있는 문제이기 때문입니다. 완전탐색을 연습하고자 이 문제를 풀는 사람들은 이 문제말고 다른 정석적인 완전탐색문제를 풀어보길 권장합니다. 아래에 제가 정리한 정석적인 완전탐색문제의 링크가 있는 페이지를 첨부합니다. 도움이 되셨으면 좋겠습니다. https://hyemsinabro.tistory.com/122 알고리즘 기초 문제 모음 vol.1 1. 단순 배열을 이용한 문제 (..
1. 단순 배열을 이용한 문제 (3) https://swexpertacademy.com/main/talk/solvingClub/problemView.do?solveclubId=AXOLHohKxsMDFAQT&contestProbId=AV139KOaABgCFAYh&probBoxId=AXOLHohKxsQDFAQT&type=PROBLEM&problemBoxTitle=7%EC%9B%9427%EC%9D%BC%28%EC%9B%94%29&problemBoxCnt=3 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com https://swexpertacademy.com/main/talk/solvingClub/problemView.d..
Solution 데이터를 받아 map에 저장합니다 (0.0)으로 dfs함수를 호출합니다. 문제에서 무조건 0,0은 치즈가 없다고 하였기에 이점을 이용하여 공기에 접촉된 치즈를 찾습니다. 찾은 치즈는 list 큐에 저장합니다. 여기서 포인트는 각 치즈의 시간을 알아야 된다는 것입니다. 저는 이를 해결하기위해 자료구조 큐와 (1110,1110)이라는 값을 넣어줬습니다. => 큐를 이용하면 순차적으로 pop이 되어 순서를 지킬 수 있습니다. 한번 dfs함수를 돌면서 들어온 값들은 동일한 시간을 가지고 있기에 이후 값과 섞이지 않고 관리할 수 있습니다. 하지만, 이렇게 한다고 해도 시간이 변경되는 기준점을 찾을 수 없습니다. 그래서 저는 임의값 (1110,1110)을 넣어 시간이 변경되는 시점을 체크하였습니다...