본문 바로가기

프로그래머스99

[프로그래머스]그래프 : 순위 (level 3)(c++) https://programmers.co.kr/learn/courses/30/lessons/49191 코딩테스트 연습 - 순위 5 [[4, 3], [4, 2], [3, 2], [1, 2], [2, 5]] 2 programmers.co.kr * Floyd-Warshall 알고리즘 활용 방법 1: 상태를 3가지로 나누기 - LOSE, UNKNOWN, WIN #include #include using namespace std; enum { LOSE = -1, UNKNOWN, WIN }; int solution(int n, vector results) { /* Floyd-Warshall 알고리즘 활용 */ // 승패결과 n * n테이블 만들기 vector table(n, vector(n, UNKNOWN)); f.. 2020. 6. 22.
[프로그래머스]깊이/너비 우선 탐색(DFS/BFS) : 여행경로 (level 3) (c++) https://programmers.co.kr/learn/courses/30/lessons/43164 코딩테스트 연습 - 여행경로 [[ICN, SFO], [ICN, ATL], [SFO, ATL], [ATL, ICN], [ATL,SFO]] [ICN, ATL, ICN, SFO, ATL, SFO] programmers.co.kr dfs + 백트랙킹 #include #include #include #include using namespace std; struct airport{ string port; bool passed; }; bool dfs(map &t_map, vector &order, string now, int left) { // 남은 티켓 개수가 없으면 종료 if (left == 0) { return.. 2020. 6. 21.
[프로그래머스]깊이/너비 우선 탐색(DFS/BFS) : 단어 변환 (level 3)(c++) https://programmers.co.kr/learn/courses/30/lessons/43163 코딩테스트 연습 - 단어 변환 두 개의 단어 begin, target과 단어의 집합 words가 있습니다. 아래와 같은 규칙을 이용하여 begin에서 target으로 변환하는 가장 짧은 변환 과정을 찾으려고 합니다. 1. 한 번에 한 개의 알파벳만 바꿀 수 programmers.co.kr #include #include #include using namespace std; // 두 단어의 글자 차이가 1개 나면 true 반환 bool possible(string A, string B) { int dif = 0; for (int i = 0; i < A.size(); ++i) { if (A[i] != B[i.. 2020. 6. 21.
[프로그래머스]깊이/너비 우선 탐색(DFS/BFS) : 네트워크 (level 3)(c++) https://programmers.co.kr/learn/courses/30/lessons/43162 코딩테스트 연습 - 네트워크 네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있�� programmers.co.kr #include #include using namespace std; void dfs(vector &computers, vector &check, int node, int n) { for (int i = 0; i < n; ++i) { // 현재 노드와 연결되어 있고 아직 방문안한 노드라면 dfs함수 재귀호출 if (computers[node][i] ==.. 2020. 6. 21.