ALGORITHM 54

백준_11403_경로찾기

문제 : 인접행렬을 보고 i, j까지 가는 경로가 있으면 1 없으면 0을 출력해주는 문제 #include&ltiostream&gt using namespace std; int visited[100];//방문여부 int G[100][100];//입력값 int result[100][100];//최종 결과 그래프 int input; void input_value() { cin &gt&gt input; for (int i = 0; i &lt input; i++) { for (int j = 0; j &lt input; j++) { cin &gt&gt G[i][j]; } } } void DFS(int startnode) { for (int i = 0; i &lt input; i++) { if (G[startnode..

ALGORITHM 2017.09.19

최단 경로 전략

최단 경로 전략너비 우선탐색 대신 최댄 경로 문제를 풀기 위해 쓸 수 있는 2가지 방법 양방향 탐색 - 역방향 문제역뱡향 간선(?)을 찾아 내기 어려운 문제 너비의 노드가 각 3개씩있고, 깊이가 20일때 마지막 연산은 3^20이 된다. 이를 양방향에서 탐색하여 2*(3^(20/2))로 만들어 준다.점점 깊어지는 탐색 - 너비의 규모가 큰 탐색에서 깊이우선 탐색을 해야 메모리를 줄일 수 있다.문제가까운 순서대로 방문하지 않으므로 최단거리인지확신할 수없다.정점을 방문했는지 확인하지 않는다?해결 - 점점 깊어지는 탐색휴리스틱을 이용한 가지치기방법으로 사용하는 방법최단거리 best를 임의로 정해놓고 best를 넘으면 다시 길로 가고, 다 돌았는데 best값이 없으면 best++ 탐색방법 선택하기너비우선탐색을 최..

ALGORITHM 2017.09.17

[?]프로그래머스_카카오_데모2

문제 :1부터 n까지 숫자가 중복되지 않고 모두 있으면 true, 없으면 false '중복' 이라는 단어를 보고 파이썬을 생각하였다. list(set(arr))로 중복을 제거하고 순서대로 만들면서해쉬테이블을 이용해 숫자가 있는지 탐색을 하는 코드를 작성하였다. 하지만 실패가 몇개 떴다. def solution(arr): arr=list(set(arr)) arrlen=len(arr) print(arr) for i in range(1,arrlen): if(arr[i-1] != i): return False return True

ALGORITHM 2017.09.12