코딩테스트12 1/1 WIL 1. 알고리즘 관련 공부 이번 주는 공부했던 알고리즘 지식을 정리하려 한다. 예제) 단지 번호 붙이기(DFS) 그림1과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸 다.철수는 이 지도를 가지고 연결된 집들의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한 다. 여기서 연결되었다는 것은 어떤 집이 좌우, 혹은 아래위로 다른 집이 있는 경우를 말한다. 대각선상에 집이 있는 경우는 연결된 것이 아니다. 그림2는 그림1을 단지별로 번호를 붙인 것이다. 지도를 입력하여 단지수를 출력하고, 각 단지 에 속하는 집의 수를 오름차순으로 정렬하여 출력하는 프로그램을 작성하시오. ▣ 입력설명 첫 번째줄에는 지도의 크기 N(정사각형이므로 가로와 세로의 크기는 같으며 5≤N≤25).. 2023. 1. 1. 12/18 WIL 1. 알고리즘 관련 공부 이번 주는 공부했던 알고리즘 지식을 정리하려 한다. BFS(Breadth First Searching) 너비 우선 탐색 너비 우선 탐색으로 상태트리나 다른 그래프에 있어 같은 레벨에 있는 노드를 우선 적으로 탐색하는 알고리즘이다. BFS를 사용할 때는 큐(선입선출) 자료구조를 사용하여 현재 노드를 popleft()하고 현재 노드와 연결된 다음 노드들을 append 한다. DFS()와의 차이점은 DFS는 한 루트(시작 노드부터 끝 레벨의 노드까지)를 중점으로 가지 치기를 하는데 사용한다는 점이다. 반면 BFS() 현재 노드와 가장 가깝게 연결된 다음 노드들을 레벨 별로 묶어서 최단 경로 찾기와 같은 좌표 이동에 주로 사용한다. BFS()는 좌표 관련 문제에서 꽤나 자주 사용하는 편.. 2022. 12. 18. 12/11 WIL 1. 알고리즘 관련 공부 이번 주는 공부했던 알고리즘 지식을 정리하려 한다. 예제) 최대점수 구하기(DFS) 이번 정보올림피아드대회에서 좋은 성적을 내기 위하여 현수는 선생님이 주신 N개의 문제를 풀려고 합니다. 각 문제는 그것을 풀었을 때 얻는 점수와 푸는데 걸리는 시간이 주어지게 됩 니다. 제한시간 M안에 N개의 문제 중 최대점수를 얻을 수 있도록 해야 합니다. (해당문제는 해당시간이 걸리면 푸는 걸로 간주한다, 한 유형당 한개만 풀 수 있습니다.) ▣ 입력설명 첫 번째 줄에 문제의 개수N(1 res: res = sum else: # 상담을 할 때 다음 날짜가 휴가 전 날짜여야한다. if (L + T[L]) 상담을 하고 다음 날짜를 선택할 때 # 상담을 하고 난 다음 날짜 DFS(L + T[L], s.. 2022. 12. 11. 12/04 WIL 1. 알고리즘 관련 공부 이번 주는 공부했던 알고리즘 지식을 정리하려 한다. 그래프 노드와 간선의 집합 방향이 설정되어 있으면 방향 그래프 방향이 설정되어 있지 않으면 무방향 그래프 간선에 값이 설정되어 있으면 가중치를 뜻한다. 이러한 그래프는 가중치 방향 그래프라 한다. 인접 행렬 프로그래밍에서 그래프를 표현할 때 사용하는 행렬 기본적으로 인접행렬을 입력할 떄 행 -> 열의 방향으로 그래프가 진행 된다고 보면 된다. 노드 a가 b로 갈 때 인접 그래프가 g라고 하면 g[a][b] = 1 이렇게 표현한다. 가중치가 있으면 g[a][b] = (가중치) 라고 표현한다. 무방향 그래프의 경우 g[a][b] = 1 , g[b][a] = 1 이렇게 행과 열을 바꾸어 두 번 지정해주어야 한다. 방문 체크 리스트 d.. 2022. 12. 4. 이전 1 2 3 다음