본문 바로가기

Algorithm/프로그래머스139

[프로그래머스]깊이/너비 우선 탐색(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.
[프로그래머스]힙(Heap) : 이중우선순위큐 (level 3) (c++) https://programmers.co.kr/learn/courses/30/lessons/42628 코딩테스트 연습 - 이중우선순위큐 programmers.co.kr 방법 1: int배열 사용 #include #include #include #include using namespace std; int datas[1000000]; vector solution(vector operations) { int start = 0, end = 0; for (string line : operations) { // 명령어, 숫자 받아오기 stringstream ss(line); char op; int num; ss >> op >> num; // 명령어 I : 끝 인덱스 자리에 숫자 삽입, 끝 인덱스 증가 if (op .. 2020. 6. 20.