[Summer/winter Coding ~ (2018)] 배달
https://programmers.co.kr/learn/courses/30/lessons/12978?language=cpp 코딩테스트 연습 - 배달 5 [[1,2,1],[2,3,3],[5,2,2],[1,4,2],[5,3,1],[5,4,2]] 3 4 6 [[1,2,1],[1,3,2],[2,3,2],[3,4,3],[3,5,2],[3,5,3],[5,6,1]] 4 4 programmers.co.kr (풀이) 인접리스트를 만들어 DFS를 이용하여 푼다. (1) Input, 노드간 가중치가 최소인 거리만을 인접리스트로 만들어준다. _distance[][] 사용 (2) check[from][to]로 이전 노드에서 다음 노드까지 거리를 구해준다. 이 거리를 구하는 이유는 재방문시 더 짧은 최단거리가 있으면 업데이트 ..
2020. 8. 7.
15685 드래곤 커브
https://www.acmicpc.net/problem/15685 15685번: 드래곤 커브 첫째 줄에 드래곤 커브의 개수 N(1 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 줄에는 드래곤 커브의 정보가 주어진다. 드래곤 커브의 정보는 네 정수 x, y, d, g로 이루어져 있다. x와 y는 드래곤 커� www.acmicpc.net (풀이) 규칙을 찾는것이 가장 중요하다. 만약 0세대가 0부터라면 1세대는 0,1 2세대는 0,1,2,1 3세대는 0,1,2,1,2,3,2,1 이전 세대의 끝에서부터 처음 인덱스까지 반대숫자를 하나 더해주며 나열해주면 된다. (역순 +1 ) 3이 넘어가면 1이 되므로 모듈 연산자를 통해 보정을 해주었다. #include #include #include using nam..
2020. 8. 7.
17471 게리맨더링
https://www.acmicpc.net/problem/17471 17471번: 게리맨더링 선거구를 [1, 4], [2, 3, 5, 6]으로 나누면 각 선거구의 인구는 9, 8이 된다. 인구 차이는 1이고, 이 값보다 더 작은 값으로 선거구를 나눌 수는 없다. www.acmicpc.net (풀이) 문제의 조건 1. 각 구역은 두 선거구중 하나에 포함되어야 한다. 2. 각 구역은 모두 연결되어 있어야 한다. 3. 두 구역으로 나누었을때 두 구역의 인구차의 최소값을 구하라. 문제의 첫 번째 조건을 만들기 위해 백트래킹을 이용한 조합을 사용하였다. divide_zone(int cnt, int idx, int limit) check_choice[]의 T구역은 true, F구역은 false로 구분, 두 선거구중..
2020. 7. 27.