일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 코딩테스트
- 쉬운 알고리즘 문제
- swexpertacademy
- 원서읽자
- 원서
- sw expert
- the midnight library
- nightroutine
- readingbook
- BFS
- 알고리즘 문제
- 삼성
- 백준
- 완전탐색
- English
- 원서읽기
- dfs
- MySQL
- 프로그래머스
- 알고리즘
- SQL
- PyQt
- STUDYENGLISH
- 코테 대비
- sw expert academy
- 직무면접
- D4
- 코테 준비
- 코테
- englishbook
- Today
- Total
목록BFS (9)
시나브로
추천도 : 3 (풀어볼만한 문제이다.) 이 문제의 경우 전체탐색의 문제이다. 간단한 문제인거 같지만, 함정이 있어 조심해야된다. 함정은 데이터 그대로 인덱스로 사용하면 의도한 그림이 나오지 않는다. 이럴 경우, 1 6 14라는 답을 얻게된다. n m 를 행/열이라고 생각하여 사용하면 그림은 행/열이 바껴서 그려진다. 이것만 유의하면 손쉽게 풀 수 있는 문제이다. 만약 이 문제가 단순히 직사각형을 제외한 면적을 구하는 문제였다면, 굳이 100*100 배열을 선언하여 공간을 낭비하지 않을 수 있다. 직사각형의 정보를 받을 때, 면적을 계산하고 겹치는 부분이 있다면, 그 공간의 면접만 빼줘 직사각형의 모든 넓이를 구할 수 있다. 이를 전체면적에서 빼면 간단하게 짧은 시간에 구할 수 있다. 저는 map을 전체 ..
이 문제는 완전탐색문제의 하나의 과정을 추가한 문제이다. 문제 요약 ) 각 빙산의 값(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. 단순 배열을 이용한 문제 (..
Solution 데이터를 받아 map에 저장합니다 (0.0)으로 dfs함수를 호출합니다. 문제에서 무조건 0,0은 치즈가 없다고 하였기에 이점을 이용하여 공기에 접촉된 치즈를 찾습니다. 찾은 치즈는 list 큐에 저장합니다. 여기서 포인트는 각 치즈의 시간을 알아야 된다는 것입니다. 저는 이를 해결하기위해 자료구조 큐와 (1110,1110)이라는 값을 넣어줬습니다. => 큐를 이용하면 순차적으로 pop이 되어 순서를 지킬 수 있습니다. 한번 dfs함수를 돌면서 들어온 값들은 동일한 시간을 가지고 있기에 이후 값과 섞이지 않고 관리할 수 있습니다. 하지만, 이렇게 한다고 해도 시간이 변경되는 기준점을 찾을 수 없습니다. 그래서 저는 임의값 (1110,1110)을 넣어 시간이 변경되는 시점을 체크하였습니다...