2024/11/02 3

[G5] 백준 2668번 숫자고르기 C++ DFS, 브루트포스 알고리즘

리뷰 https://www.acmicpc.net/problem/2668백트래킹을 시도 했다가, n이 최대 100만에 걸려 시간 초과가 출력되었다.문제를 보다 보니 첫째줄은 노드를, 둘째줄은 간선을 통해 다른 노드로 이동하는 것으로 보였다.모든 정점에서 DFS를 진행하여 싸이클이 발생하면 자신을 ans에 추가하는 식으로 구현하였다.  전역 변수n : 주어지는 노드의 개수lst : 주어지는 간선의 정보를 저장할 정수형 배열v : 방문 처리를 하기 위한 정수형 배열ans : 싸이클이 발생한 노드 정보를 추가할 정수형 벡터 함수1. dfsvoid dfs(int s, int e) 시작 지점으로부터 간선을 타고 노드를 순회하며 사이클 발생 여부를 체크할 함수기저 조건은 이미 방문한 노드를 재 방문한 경우이다.이때 ..

[L3] 프로그래머스 가장 먼 노드 C++ 다익스트라, 최단 경로

리뷰 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 1번 노드에서 가장 멀리 떨어진 노드의 갯수를 구하는 문제다익스트라로 모든 노드까지의 최단 거리를 구한 후, 해당 노드 중 거리가 최대값인 노드를 찾는다.최대값과 동일한 값을 같는 거리를 가진 노드의 개수를 출력해 주었다.  전역 변수nodes : 노드의 개수를 저장할 변수lst : 노드간 인접 리스트를 저장할 정수형 벡터 배열, 노드의 최대 갯수인 2만보다 크게 해주어야 한다.Pos : 다익스트라의 탐색용 구조체, 우선순위 큐용 오름차순 cmp함수를 정의했다. 함수1. dijkstraint dijkstra() 1번 노드로부터 모든 노드까지의 거리를 ..

[L3] 프로그래머스 여행경로 C++ DFS, 해시맵, 우선순위 큐

리뷰 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 해시맵을 통해 각 공항을 저장해 주고, ICN으로 부터 출발해 모든 항공권을 사용하여 모든 도시를 방문하는 문제예제의 경우 모두 맞았지만 테스트 케이스에서 반만 맞는 경우가 생겼다.answer에 공항 이름을 추가하는 로직을 후위로 위치하니 AC를 맞게 되었다.  전역 변수dic : 각 공항에서 이동할 수 있는 공항 정보를 오름차순으로 정렬하는 해시맵answer : 공항에 방문한 순서를 저장할 문자열 벡터 함수1. dfsvoid dfs(string s) 깊이 우선 탐색을 통해 공항을 방문하며 정답에 기록할 함수매개변수 s를 공항의 이름으로 받는다. 초기..

728x90