분류 전체보기
-
[SWEA] #1949 _ 등산로 조성Problem Solving/SWEA 2019. 10. 26. 01:32
[등산로 조성] https://swexpertacademy.com/main/code/problem/problemDetail.do SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com top이라는 벡터에 제일 높은 봉우리의 좌표를 넣어둔다. top에 있는 좌표에서 시작하여 solve 함수에서 dfs를 이용하여 최대 길이를 구한다. 한 번 깎은 곳의 좌표는 cut 벡터에 저장하고, cut 벡터의 사이즈가 0일 경우에는 한 번도 깎지 않은 것으로 간주하여 깎아 갈 수 있는 최대 길이를 갱신하도록 구현하였다. [ 소스 코드 ] #include #include #include #define MAX 8 using namespa..
-
[BOJ] #17472 _ 다리 만들기 2Problem Solving/BOJ 2019. 10. 22. 22:58
[다리 만들기 2] https://www.acmicpc.net/problem/17472 17472번: 다리 만들기 2 첫째 줄에 지도의 세로 크기 N과 가로 크기 M이 주어진다. 둘째 줄부터 N개의 줄에 지도의 정보가 주어진다. 각 줄은 M개의 수로 이루어져 있으며, 수는 0 또는 1이다. 0은 바다, 1은 땅을 의미한다. www.acmicpc.net map의 정보를 0과 1로만 준다. 따라서, 바다를 각 숫자로 만들어주고, 최단 거리를 구한 후, 모두 연결되어 있는지 확인하였다. getNewMap() 함수를 통해 아래와 같이 바다를 각 숫자로 변경해주었다. getDistMap() 함수를 통해 각 바다의 거리를 구해주었다. 최단거리를 구하고, 모두 연결되어 있는지 확인하기 위해 크루스칼 알고리즘을 사용하..
-
[BOJ] #17471 _ 게리맨더링Problem Solving/BOJ 2019. 10. 22. 22:13
[게리맨더링] https://www.acmicpc.net/problem/17471 17471번: 게리맨더링 선거구를 [1, 4], [2, 3, 5, 6]으로 나누면 각 선거구의 인구는 9, 8이 된다. 인구 차이는 1이고, 이 값보다 더 작은 값으로 선거구를 나눌 수는 없다. www.acmicpc.net 두 구역으로 나눌 수 있는 모든 경우의 수를 고려하여 인구 차이의 최솟값을 구하는 문제이다. next_permutation을 통해 구현하였다. 알고리즘의 흐름은 다음과 같다. 1. 경우의 수 만들기 (1:N, 2:N-2 ...) 2. 각 구역의 연결 유무 확인 3. 두 구역 모두 연결되어 있다면, 인구 수 차이 구하기 checkConnection()의 매개변수인 type은 1구역 2구역을 나타내는 변수이..
-
[BOJ] #17281 _ 야구Problem Solving/BOJ 2019. 10. 22. 20:31
[야구] https://www.acmicpc.net/problem/17281 17281번: ⚾ ⚾는 9명으로 이루어진 두 팀이 공격과 수비를 번갈아 하는 게임이다. 하나의 이닝은 공격과 수비로 이루어져 있고, 총 N이닝동안 게임을 진행해야 한다. 한 이닝에 3아웃이 발생하면 이닝이 종료되고, 두 팀이 공격과 수비를 서로 바꾼다. 두 팀은 경기가 시작하기 전까지 타순(타자가 타석에 서는 순서)을 정해야 하고, 경기 중에는 타순을 변경할 수 없다. 9번 타자까지 공을 쳤는데 3아웃이 발생하지 않은 상태면 이닝은 끝나지 않고, 1번 타자가 다시 타석에 www.acmicpc.net 야구의 룰을 알면 쉽게 이해할 수 있다. 야구의 룰을 그대로 시뮬레이션하여 구현하는 문제이다. 처음에는 vector를 사용하여 뒤에..
-
[BOJ] #17144 _ 미세먼지 안녕!Problem Solving/BOJ 2019. 10. 22. 20:22
[미세먼지 안녕!] https://www.acmicpc.net/problem/17144 17144번: 미세먼지 안녕! 미세먼지를 제거하기 위해 구사과는 공기청정기를 설치하려고 한다. 공기청정기의 성능을 테스트하기 위해 구사과는 집을 크기가 R×C인 격자판으로 나타냈고, 1×1 크기의 칸으로 나눴다. 구사과는 뛰어난 코딩 실력을 이용해 각 칸 (r, c)에 있는 미세먼지의 양을 실시간으로 모니터링하는 시스템을 개발했다. (r, c)는 r행 c열을 의미한다. 공기청정기는 항상 왼쪽 열에 설치되어 있고, 크기는 두 행을 차지한다. 공기청정기가 설치되어 있지 않은 칸에는 미세먼 www.acmicpc.net 1초동안 일어나는 일을 그대로 구현하면되는 시뮬레이션 문제이다. [ 소스 코드 ] #include #inc..