728x90
반응형

코딩테스트 93

코딩테스트 : 방문 길이(set)

해당 문제는 정해진 크기의 맵 내에서 움직이는 플레이어의 경로 길이를 계산하는 문제로 문제의 중점은 겹치는 경로를 어떻게 처리할 것인가 로 보인다.내가 접근한 방법은 set을 이용하는 방법이다. set의 특징은 중복되는 데이터를 저장하지 않는다. 즉 이미 저장된 경로라면 중복되게 저장하지 않기에 set의 크기를 확인하면 경로의 길이를 확인할 수 있다. Set에 대해 궁금하면 아래 글을 참고하면 자세히 설명해놨다https://jinho082008.tistory.com/24 #include #include #include using namespace std;int solution(string dirs) { //상하좌우 입력에 따라 움직여야할 좌표를 map으로 매핑 map> m; //입력에 따라 ..

코딩테스트 : 게임 맵 최단거리 문제

해당 문제는 로봇이 목적지까지 갈 수 있는 최단거리를 구하는 문제이다. 처음 생각엔 목적지까지 가는 모든 경우의 수를 구하고 그 중에서 가장 작은 값이 최단거리니 재귀함수를 이용해 DFS 방법으로 해결하려고 하였다. 하지만 DFS를 사용하니 모든 경우의 수를 확인해야해서 시간 복잡도가 높게 나왔고 시간초과 문제와 테스트 케이스 19/21 정답률이 나왔다. DFS에 대한 자세한 설명은 아래 링크에 정리해두었다. DFS( Depth-First Search) 깊이 우선 탐색DFS는 깊이 우선 탐색으로 이름에서 알 수 있듯 깊이를 우선으로 탐색하는 알고리즘이다.쉽게 말해 가장 끝의 부분까지 탐색했다가 돌아오면서 나머지 경로도 마찬가지로 끝 부분까지 탐색하는jinho082008.tistory.com첫 해결 방안(..

그래프 탐색 알고리즘 (DFS, BFS)

DFS, BFS는 그래프 탐색 알고리즘으로 그래프는 여러 개체들이 연결되어 있는 자료구조를 뜻하고 탁색은 특정 개체를 찾기 위한 알고리즘을 말한다.대표적인 문제 유형은경로 탐색 유형 (최단거리, 시간)네트워크 유형 (연결)조합 유형 (모든 조합 만들기)DFS(Depth-First Search) - 깊이 우선 탐색DFS는 깊게 파고들며 모든 경우의 수를 탐색하는 알고리즘이다. 때문에 한개의 경우의 수가 너무 오래 걸리면 시간이 초과될 수 있다. 운이 좋으면 빠른 시간내에 답을 찾지만 운이 없을 시 2^n의 시간 복잡도가 걸린다.BFS(Breadth-First Search) - 넓이 우선 탐색BFS는 모든 경우의 수를 한개씩 차근차근 접근한다. 때문에 DFS보다 시간 복잡도 측면에서 낮을 수 있다. 이유는 ..

728x90
반응형