공부/패스트 캠퍼스 챌린지

코딩테스트 - 패스트캠퍼스 챌린지 32일차

kNOwAnswer 2022. 2. 24. 21:57

수강한 강의

Part 3. 알고리즘 유형별 풀이

Chapter 02 알고리즘
- 그래프 탐색 (Graph Search, DFS & BFS) - 응용 편 1

학습 후기
격자형 그래프
해당 좌표를 중심으로 상, 하, 좌, 우를 확인해가며 이동할 수 있는 격자인지 확인
이때 중심 좌표를 기준으로 상, 하, 좌, 우 좌표는 {{1, 0}, {0, 1}, {-1, 0}, {0, 1}}을 사용하여 확인한다.
https://www.acmicpc.net/problem/2667

 

2667번: 단지번호붙이기

<그림 1>과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여

www.acmicpc.net

정점: O(N^2)
간선: O(N^2 * 4)
탐색 시 BFS, DFS 모두 시간 복잡도 O(N^2)

https://www.acmicpc.net/problem/2251

 

2251번: 물통

각각 부피가 A, B, C(1≤A, B, C≤200) 리터인 세 개의 물통이 있다. 처음에는 앞의 두 물통은 비어 있고, 세 번째 물통은 가득(C 리터) 차 있다. 이제 어떤 물통에 들어있는 물을 다른 물통으로 쏟아 부

www.acmicpc.net

정점: O(8*10^6): A, B, C 각 물통의 최대 리터 200, 200 ^ 3 가지의 상태를 나타낼 수 있음.
간선: O(8*10^6 * 6): A > B, A > C, B > A, B > C, C > A, C > B 물통의 물을 이동할 수 있는 경우의 수 6가지
탐색의 시간 복잡도는 DFS, BFS 모두 O(8*10^6)이다.

해당 문제를 풀기 위해서 물통의 상태를 나타내는 정점을 표현하기 위해 구조체(클래스)를 만들어 푼다.

https://www.acmicpc.net/problem/14502

 

14502번: 연구소

인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크

www.acmicpc.net

문제 입력 범위 (3 ≤ N(세로), M(가로) ≤ 8)
정답의 최대치: 모두 안전 영역일 경우 O(N^2)
문제 접근
1. 바이러스 노출 지역 확인: 격자형 그래프로 보고 탐색한다.
2. 완전 탐색으로 3칸의 벽을 세울 수 있는 경우의 수를 다 구해본다.
빈 공간(N*M)에 최대 3개의 칸으로 세울 수 있는 경우의 수: 8*8 C 3 = 64 * 63 * 62 / ( 3 * 2 * 1) = 41664
3. 벽을 세울 수 있는 경우의 수마다 탐색을 한다. O(41664) * O(탐색)
4. 바이러스가 있는 모든 지역에서 BFS 시작(Multisource BFS), 이때 탐색 시간 복잡도 O(N ^ 2)
총 O(41664) * O(N ^ 2) = O(41664) * O(64) = 2,666,496로 충분히 계산 가능하다.

DFS, BFS는 알고리즘 단골 문제라 유형도 많아서 기본 편, 응용 편 1, 2까지 있다 다음 편 까지 배우고 여러 문제를 접하며 확실히 익혀야겠다.

수강 인증샷

https://bit.ly/37BpXiC

 

패스트캠퍼스 [직장인 실무교육]

프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.

fastcampus.co.kr

본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.

반응형