일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 알고리즘
- sw expert
- nightroutine
- dfs
- 코테 준비
- 프로그래머스
- 완전탐색
- 알고리즘 문제
- PyQt
- 쉬운 알고리즘 문제
- 코테 대비
- 코테
- 코딩테스트
- 원서읽기
- 직무면접
- STUDYENGLISH
- SQL
- readingbook
- BFS
- englishbook
- 백준
- sw expert academy
- MySQL
- 삼성
- English
- D4
- 원서
- swexpertacademy
- the midnight library
- 원서읽자
- Today
- Total
목록BFS (9)
시나브로
단순 완전탐색보다는 조금 힘든 문제인 것 같다. Solution 먼저 데이터를 받아 map를 만든다. 여기서 min_high와 max_high를 찾는다. 이는 처음 물높이를 설정할 때 이용한다. 모든 점을 우선순위 큐에 넣어서 오름차순 정렬을 한다. => 여기서 다른 구조를 사용해도 된다. 나는 벡터를 쓸려고하다가 큐가 편할 것 같아서 큐를 사용했는데 정렬이 안되서 할 수 없이 우선순위 큐를 이용했다. 그러므로 아무 자료구조를 사용해도 좋다. 단, 구조체 정렬이 가능해야된다는 점을 유의하자. 자료량이 계속 들어오는게 아니라 자료량의 크기도 정해져있기 때문에배열도 상관없다. 높이 가장 작은 곳을 찾아 물 높이가 min_high일 때, 잠기는 지 확인하다. 잠긴다면, 잠겼다는 표시로 0으로 바꿔준다. 만약 ..
이 문제는 전형적인 DFS/BFS 완전탐색 문제이다. Solution 값을 입력 받는다. 여기서 값이 1인 인덱스를 벡터 stack에 입력한다. 벡터 stack이 빌때까지 while문을 돌면서 dfs 함수를 호출한다. 호출할 때는 새로운 단지를 발견한 것이기에 answer함수에 새로운 단지를 찾았다는 뜻으로 push_back으로 값을 넣어준다. dfs함수에서는 4방향을 보며 1일 경우, 재귀호출을 해준다. => 여기서 유의점은 범위체크이다. 인덱스가 배열을 범위를 넘어서면 무조건 오류가 나기때문에 귀찮더라도 범위체크를 해줘야한다. 재귀호출하면서 집의 갯수를 세야된다. 그렇기에 새로운 집에 방문할때마다 answer의 마지막 요소에 +1를 해준다. 여기서 왜 마지막 요소인가하면, 동시에 여러단지를 검색하지않..
완전 쉬운 완전탐색 문제입니다. 처음 편하게 시도하기에 적합한 문제인듯합니다. Solution 재귀호출을 하면서 상담을 하는 경우와 안하는 경우 모두 탐색을 해줍니다. 그중에 max값을 선택합니다. Key Point 완전탐색 #include #include #include #include #include #include using namespace std; #define INF 10000000 int max_value = 0; int n = 0; int list[16][2] = { 0 }; void dfs(int value,int time) { if (time+1 > n) { if (value > max_value) max_value = value; return; } if (list[time][0] !=..
하드코딩으로 풀다가 예제는 다 맞는데 틀려서 결국 타블로그를 참조해서 해결하였습니다. Solution 모든 방향에서 위/아래/오른쪽/왼쪽으로 기울이는 경우를 생각한다/ 기울인 결과값을 queue에 push한다. push한 결과값을 불러와 다시 연산한다. check함수로 방문했는지 확인하고 방문했으면 push하지 않고 끝낸다. 그 이유는 그 값이 queue에 들어가 있기 때문이다. - 바로 d를 출력하고 멈춘 이유는 무조건 큐의 앞부분에 d가 작은 값이 위치하기 때문에 가장 먼저 찾은 값이 최솟값이 되기 때문입니다. Key Point 저는 예제7번을 이해하지 못해 어려움이 있었습니다. 한 방향으로 기울일 때, 빨간 구술이 구멍에 들어간 경우에도 파란 구술이 구멍에 들어가면 fail입니다. 재귀호출을 구현하..