전체 글

전체 글

    [코독하구만 팀] 2021.01.05(화) - 3주차 모임 결과

    [코독하구만 팀] 2021.01.05(화) - 3주차 모임 결과 고도현 - LCA(Lowest Common Ancestor) 알고리즘 개념 및 실습 문제를 복습하고 백준 문제를 통해 실제 문제에 적용해봄으로써 알고리즘 동작방식에 대해 알게 되었다. 실습에서 배운 방식으로 백준 문제를 접근하였지만 아직 풀지 못하였다. 다른 방식으로 LCA를 접근해보려고 한다. 신희승 - 동적 계획법을 이용하면 여러 작은 문제의 값을 저장해 놓기 때문에 문제를 반복해서 해결 할 필가 없어 불필요한 계산을 줄이고, 효율적으로 프로그래밍을 할 수 있다는 것을 할 수 있었다. 이동헌 - 시점과 종점이 주어졌을 때 최단 경로를 구하는 Dijkstra 알고리즘과 모든 vertex에 대해 최단 경로를 구하는 Floyd 알고리즘의 개념..

    [코독하구만 팀] 2020.01.05(화) - 3주차 개인 결과

    - 목표 - codekodo.tistory.com/12 [코독하구만 팀] 2021.01.05(화) - 3주차 개인 목표 목표 : LCA(Lowest Common Ancestor) 알고리즘 개념 및 실습 문제를 복습하고 백준 문제를 통해 실제 문제에 적용해본다. 실습은 총 4문제로 알고리즘 수업 시간이 진행되었던 실습 문제이다. 1. root 찾기 codekodo.tistory.com LCA(Lowest Common Ancestor) 알고리즘 개념 및 실습 문제를 복습하고 백준 문제를 통해 실제 문제에 적용해봄으로써 알고리즘 동작방식에 대해 알게 되었다. 실습에서 배운 방식으로 백준 문제를 접근하였지만 아직 풀지 못하였다. 다른 방식으로 LCA를 접근해보려고 한다. 1. root 찾기 def main():..

    [코독하구만 팀] 2020.01.05(화) - 3주차 모임 목표

    [코독하구만 팀] 2020.01.05(화) - 3주차 모임 목표 고도현 - LCA(Lowest Common Ancestor) 알고리즘 개념 및 실습 문제를 복습하고 백준 문제를 통해 실제 문제에 적용해본다. 신희승 - Dynamic Programmin(동적 계획법)에 대해 이해하고 아래의 백준 알고리즘 문제를 풀어보며 개념을 확립시킨다. 이동헌 - 최단 경로를 찾는 Dijkstra algorithm의 개념을 복습하고 이와 관련된 예제를 풀어보며 응용 방법을 체화한다. 최현석 - 동적계획법 개념을 정리하고, 예제를 풀며 응용한다. / 웹 크롤링한 데이터를 리스트로 정리한다. 고도현 - codekodo.tistory.com/12 신희승 - ciwekdo.tistory.com/7 이동헌 - blog.naver..

    [코독하구만 팀] 2021.01.05(화) - 3주차 개인 목표

    목표 : LCA(Lowest Common Ancestor) 알고리즘 개념 및 실습 문제를 복습하고 백준 문제를 통해 실제 문제에 적용해본다. 실습은 총 4문제로 알고리즘 수업 시간이 진행되었던 실습 문제이다. 1. root 찾기 이진 트리의 노드의 개수가 주어지고, 노드의 key와 자식들이 주어졌을 때 해당 트리의 root를 찾으시오. [입력 값] 6 # N D . . # 간선의 정보 N개 E . . F . . C F . B D E A B C [예상 출력] A 2. 트리 순회 이진 트리의 노드의 개수가 주어지고, 노드의 key와 자식들이 주어졌을 때 해당 트리의 Preorder/ Inorder / Postorder 순으로 순회하고 출력하시오. [입력 값] 6 # N D . . # 간선의 정보 N개 E ...

    [코독하구만 팀] 2020.12.30(수) - 2주차 모임 결과

    [코독하구만 팀] 2020.12.30(수) - 2주차 모임 결과 고도현 - prim 알고리즘과 kruskal 알고리즘 개념 및 실습 문제를 복습하고 백준 문제를 통해 실제 문제에 적용해봄으로써 둘의 차이와 알고리즘 동작방식에 대해 확실하게 아는 계기가 되었다. 신희승 - 분할정복 알고리즘에 대해 공부하면서 하나의 큰 문제를 바로 해결하는 것이 아니라 작은 여려개의 문제로 분할하여 해결하는 것이 시간복잡도나 효율성 면에서 더 뛰어나다는 것을 알게 되었다. 이동헌 - Kruskal 알고리즘을 복습하면서 개념을 명확하게 정립할 수 있었고 수업 시간에서의 예제 이외의 문제를 접해봄으로써 개념적인 부분뿐만 아니라 응용 방법을 습득할 수 있었다. 최현석 - 알고리즘 예제를 풀며 시간과 메모리 비용을 줄이기 위해 메..

    [코독하구만 팀] 2020.12.30(수) - 2주차 개인 결과

    prim와 kruskal를 개념과 실습 문제를 복습하고 백준 문제를 통해 실제 문제에 적용해봄으로써 둘의 차이와 알고리즘 동작방식에 대해 확실하게 아는 계기가 되었다. - 목표 - codekodo.tistory.com/8 [코독하구만 팀] 2020.12.30(수) - 2주차 개인 목표 목표 : prim 알고리즘과 kruskal 알고리즘 개념 및 실습 문제를 복습하고 백준 문제를 통해 실제 문제에 적용해본다. 실습은 총 3문제로 알고리즘 수업 시간이 진행되었던 실습 문제이다. 1. prim 알고 codekodo.tistory.com 1. prim 알고리즘 import heapq def prim(edges, vertices, n): queue = [] heapq.heappush(queue, [0, verti..

    [코독하구만 팀] 2020.12.30(수) - 2주차 모임 목표

    [코독하구만 팀] 2020.12.30(수) - 2주차 모임 목표 고도현 - prim 알고리즘과 kruskal 알고리즘 개념 및 실습 문제를 복습하고 백준 문제를 통해 실제 문제에 적용해본다. 신희승 - 분할정복 알고리즘에 대해 이해하고 관련된 알고리즘 문제를 풀어보며 개념을 확립시킨다. 이동헌 - kruskal 알고리즘의 이론을 복습하고 Min-cost Spanning Tree를 찾는 프로그램을 구현한다 최현석 - 분할정복법 예제를 풀어보고, 지난 주 학습했던 시간복잡도를 예제에 적용해서 구해본다. / 웹크롤링 코드를 따라쳐보며 어떤 식으로 동작하는지 알아본다. 고도현 - codekodo.tistory.com/8 신희승 - ciwekdo.tistory.com/5 이동헌 - blog.naver.com/to..

    [코독하구만 팀] 2020.12.30(수) - 2주차 개인 목표

    목표 : prim 알고리즘과 kruskal 알고리즘 개념 및 실습 문제를 복습하고 백준 문제를 통해 실제 문제에 적용해본다. 실습은 총 3문제로 알고리즘 수업 시간이 진행되었던 실습 문제이다. 1. prim 알고리즘 무방향 가중치 그래프가 주어졌을 때 prim 알고리즘을 이용하여 MST를 구하고 그 에지의 합을 출력. (모든 노드가 연결되지 않아, MST가 없을 경우 0을 출력) 입력 값은 다음과 같이 주어진다. 7 12 # N, M A B C D E F G # 노드의 개수 N 개 A B 7 # 간선의 정보 M 개 C B 8 A D 5 C E 5 D B 9 E B 7 D E 15 E G 9 F G 11 E F 8 F D 6 E D 15 2. kruskal 알고리즘 무방향 가중치 그래프가 주어졌을 때 kr..

    [코독하구만 팀] 2020.12.23(수) - 1주차 모임 결과

    [코독하구만 팀] 2020.12.23(수) - 1주차 모임 결과 고도현 - BFS와 DFS를 개념과 실습 문제를 복습하고 백준 문제를 통해 실제 문제에 적용해봄으로써 둘의 차이와 알고리즘 동작방식에 대해 확실하게 아는 계기가 되었다. 신희승 - 이진 트리를 구현하면서 트리의 구조를 파악하였고 그래프를 만들어 DFS, BFS의 방법으로 탐색하는 방법을 연습할 수 있었다. 이동헌 - 다양한 형태로 그래프를 작성해보았고 이 그래프롤 통해 DFS, BFS의 방법으로 탐색하는 방법을 연습할 수 있었다. 최현석 - 웹 크롤링 기법을 학습하였더니, 다양한 오픈 API에서 크롤링을 해보고 싶단 생각이 들었다. 고도현 - codekodo.tistory.com/5 신희승 - ciwekdo.tistory.com/4 이동헌 ..

    [코독하구만 팀] 2020.12.23(수) - 1주차 개인 결과

    BFS와 DFS를 개념과 실습 문제를 복습하고 백준 문제를 통해 실제 문제에 적용해봄으로써 둘의 차이와 알고리즘 동작방식에 대해 확실하게 아는 계기가 되었다. 1. 이웃 노드 찾기 (그래프 기본) def main(): n, m = map(int, input().split()) node = list(input().split()) node_dict = dict() for i in range(n): node_dict[node[i]] = [] for i in range(m): srt, dst = input().split() if dst not in node_dict[srt]: node_dict[srt].append(dst) find_node = input() print(len(node_dict[find_node..