알고리즘/백준&프로그래머스 [C++] 프로그래머스 lv3 여행경로 (DFS) - 반응형 문제 내용 https://school.programmers.co.kr/learn/courses/30/lessons/43164 프로그래머스 SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프 programmers.co.kr 풀이 내용 알파벳 순으로 경로 출력 위해 sort함 sort한 상태로 dfs 돌며 경로 찾음 경로 끝까지 갔을때(다 찾았을때)의 예외처리를 잘못해서 좀 헤맸다.. 짱ㄴㅏ.. 사실 ICN을 첨부터 push 안하고 바로 dfs 돌면서 start를 push해도 되긴하는데 문제에서 고정값으로 준 ICN라 그냥 직역해서 풀었다 풀이 코드 #include <string> #include <vector> #include <algorithm> using namespace std; bool visit[10000+2]; vector<string> answer; bool isDone; void dfs(string start,vector<vector<string>> tickets, int cnt){ // DFS 끝 노드까지 탐색 완료 if(tickets.size()==cnt) { isDone=true; return; }; for(int i=0;i<tickets.size();i++){ if(!visit[i] && tickets[i][0].compare(start)==0) { string dest=tickets[i][1]; answer.push_back(dest); visit[i]=true; dfs(dest, tickets,cnt+1); if(!isDone){ //DFS 탐색 다 못한채 다음 경유지 찾지 못했을때 visit[i]=false; answer.pop_back(); } } } } vector<string> solution(vector<vector<string>> tickets) { // 알파벳 순으로 dfs 작동하도록 sort sort(tickets.begin(),tickets.end()); // 처음은 무조건 ICN 공항 시작 answer.push_back("ICN"); dfs("ICN", tickets,0); return answer; } 반응형 공유하기 URL 복사카카오톡 공유페이스북 공유엑스 공유 게시글 관리 구독하기우당탕탕 개발 감자 저작자표시 (새창열림) Contents 문제내용 풀이내용 풀이코드 당신이 좋아할만한 콘텐츠 [C++] 프로그래머스 lv3 단어 변환 (BFS) 2025.03.03 [얼렁뚱땅] 백준 BOJ - 1학년 (5557) 2023.01.25 [C++] 백준 BOJ - 개똥벌레 (3020) 2023.01.25 [C++] 백준 BOJ - 내려가기 (2096) 2023.01.23 댓글 0 + 이전 댓글 더보기