제 6회 (4주차) 모각코 결과

이미지
  제 6회 (4주차)  - 스위핑 알고리즘의 이론적 학습과 구현, 및 백준 응용 문제 풀기 2170번: 선 긋기 (acmicpc.net) 어려운 내용이 아닌 그냥 한번 훑으면서 같은 라인 단위로 만드는 방법이었다. 아직 스위핑 알고리즘이 뭔지 감을 잡지 못하였다. BaekJoon/선 긋기.java at main · Hy3ons/BaekJoon (github.com) 2836번: 수상 택시 (acmicpc.net) 해당 문제는 손님이 뒤로 가는 상황일 경우 역주행을 효율적으로 하는 것을 묻고 있다. 현재 나의 위치에서 내 위치 전으로 역주행 하는 상황이 앞에 안 나올 때, 모든 손님을 역주행 하면서 한번에 도착 지점으로 이동 시키면 가장 효율적 이게 된다. 방법은 아는데 구현을 어떻게 해야 될지 모르겠어, HashMap 과 HashSet을 그냥 남발하듯이 사용했다. 또한 내가 특정 지점에 도착 했는데, 역주행을 앞으로 내 위치 전으로 안해도 되는 상황이라는 것을 특정 하는 것이 어려웠다. BaekJoon/수상 택시.java at main · Hy3ons/BaekJoon (github.com) 후에 다시 개념을 정리하고 풀면서, 스위핑에 대한 이해를 높일 수 있었다. 그림을 보면 뒤로 가야 하는 상황에 대해, 겹치는 선분을 하나로 만들어서 2배하여 더해야 한다. 그럼 뒤로 가는 경우에 대해 선분을 다 만들고, 스위핑 기법을 활용 하면 끝난다. 이렇게 하면 HashMap 과 HashSet을 이용하지 않고, 효율적으로 문제를 풀 수 있다. 공유 소스 보기 (acmicpc.net) 남은 시간에는 오일러 피 함수를 알게 된 김에 폴라드로 알고리즘을 이용하여 푸는 문제를 풀어봤다. 13926번: gcd(n, k) = 1 (acmicpc.net) BaekJoon/gcd(n, k) = 1.py at main · Hy3ons/BaekJoon (github.com) 순간적으로 63 비트를 넘기 때문에, python으로 구현하였다.

제 6회 (4주차) 모각코 목표

제 6회 (4주차)  - 스위핑 알고리즘의 이론적 학습과 구현, 및 백준 응용 문제 풀기 2170번: 선 긋기 (acmicpc.net) 스위핑 알고리즘의 이론적 학습, 및 이해 그리고 응용을 도모한다.

제 5회 (3 주차) 모각코 결과

5회차 (3주차) - 트리에서의 다이나믹 프로그래밍 문제 풀어보기 15681번: 트리와 쿼리 (acmicpc.net) BaekJoon/트리.java at main · Hy3ons/BaekJoon (github.com) 생각보다 그리 어렵지 않았다. 남은 시간에는 이분 매칭을 복습하여 풀었다. 11493번: 동전 교환 (acmicpc.net) 흐르고있는 유량의 감소와 증가 유무를 정확하게 판별하고, 최소거리로 흘려버리면 된다. BaekJoon/동전 교환.java at main · Hy3ons/BaekJoon (github.com)

제 5회 (3 주차) 모각코 목표

4회차 ( 3주차)  - 트리에서의 다이나믹 프로그래밍 문제 풀어보기      15681번: 트리와 쿼리 (acmicpc.net) 트리에서의 다이나믹을 풀고 접근 방법과, 개념을 학습한다.

제 4회 (3주차) 모각코 결과

이미지
4회차  (3주차)  -  그리디 문제 풀어보기  (수정) 최소 버택스 커버에 대해 공부, 응용 문제 풀기 1867번: 돌멩이 제거 (acmicpc.net) 최소 버택스 커버...?     최소 버택스 커버란 그래프와 간선이 있을 때, 간선의 양쪽 노드 중 한개는 적어도 S집합에 있어야 할 때, S집합에 포함 해야 하는 노드를 최소한으로 정하는 것이다.     이 최소 버택스 커버를 찾기 위해서는 최대유량으로 접근하여야 한다. 해당 내용은 쾨닉의 정리에 해당하는데, 아직 이해하지 못했다.          그래프에서 최소 버택스 커버를 찾을려면 일반적인 그래프에서는 다항 시간내에 문제를 해결 할 수 없다. 하지만 이분그래프의 경우라면, 최대 유량 알고리즘을 이용하여, 다항 시간내에 문제를 해결 할 수 있다.     최소 버택스의 개수는 최대 매칭의 개수랑 동일 하다. 이것 또한 쾨닉의 정리의 일부이다. 최소 버택스를 역추적 하여 발견하기 위해서는 증명을 이해해야 하는데, 아직 이해하지 못했다.     위 백준 문제는 단순히 매칭의 개수를 세어보면 되는 간단한 문제였다.      BaekJoon/돌멩이 제거.java at main · Hy3ons/BaekJoon (github.com)           2051번: 최소 버텍스 커버 (acmicpc.net)     최소 버텍스 커버를 구한다... 내가 이해한 최소 버텍스 커버를 구하는 방법이다.      BaekJoon/최소 버텍스 커버.java at main · Hy3ons/BaekJoon (github.com)                 해당 그래프는 최소 벌...

제 4회 (3주차) 모각코 목표

  4회차  (3주차)  -  그리디 문제 풀어보기  (수정) 최소 버택스 커버에 대해 공부, 응용 문제 풀기 1867번: 돌멩이 제거 (acmicpc.net) 최소 버택스 커버 이론에 대해 공부 후, 해당 이론을 응용하는 문제를 풀어 볼 예정이다.

제 3회 (2 주차) 모각코 결과

     3주차  (3회차)  - 최소 스패닝 트리에 대한 이론 및, 백준 응용 문제 풀기       1197번: 최소 스패닝 트리 (acmicpc.net) 최소 스패닝 트리란? (최소 신장 트리) 간선에 가중치가 있는 무방향성 그래프가 주어졌을때, 이 그래프에서 가장 적은 가중치로 모든 노드를 가지는 트리를 만드는 문제였다. 처음에는 문제를 이해하지 못해서 고생했다. 하지만 문제를 이해하고 난뒤에는 수월하게 풀렸다. 해당 문제를 푸는 것은 그리디한 방법으로 접근하면 쉽게 풀린다. 간선의 가중치가 적은 것 부터 노드를 이어주는 것이다. 그리고 나중에 가중치가 더 큰 간선으로 이을 려는 두개의 노드가 이미 이어져 있다면, 이을 필요가 없다. 이 과정은 유니온 파인드로 쉽게 할 수 있다. BaekJoon/최소 스패닝 트리.java at main · Hy3ons/BaekJoon (github.com) 이런 최소 스패닝 트리는 가중치를 가장 적게, 혹은 가장 크게 그래프에서 트리를 구성해야 한다는 특징만 안다면 쉽게 응용 할 수 있다. 이번 모각코에서 푼 응용문제들이다. 1922번: 네트워크 연결 (acmicpc.net) BaekJoon/백준/Gold/1922. 네트워크 연결 at main · Hy3ons/BaekJoon (github.com) 1647번: 도시 분할 계획 (acmicpc.net) BaekJoon/도시 분할 계획.java at main · Hy3ons/BaekJoon (github.com) 4386번: 별자리 만들기 (acmicpc.net) BaekJoon/별자리 만들기.java at main · Hy3ons/BaekJoon (github.com) 2887번: 행성 터널 (acmicpc.net) BaekJoon/행성 터널.java at main · Hy3ons/BaekJoon (github.com) p.s 후에 공부를 더하고 알았는데, 내가 한 방법은 크루코살 알고리즘이라고...