문제 출처:https://swexpertacademy.com/main/code/problem/problemDetail.do SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 지문에서 '최대한 많은 코어에 전원을 연결할 경우'라는 말이 있다. 그 말은 코어에 연결할 수 없을 수도 있다는 것을 의미한다. 재귀를 통해 진행하면서 코어를 만났을 때, 4방 탐색을 통해 이동 가능한 곳으로 모두 이동해가면서 최대 값을 구하면 된다. 더 깊이 재귀를 들어갈 조건은, 해당 코어에서 특정 방향으로 전선을 설치할 수 있으면이다.
문제 출처: https://www.acmicpc.net/problem/17471 17471번: 게리맨더링 선거구를 [1, 4], [2, 3, 5, 6]으로 나누면 각 선거구의 인구는 9, 8이 된다. 인구 차이는 1이고, 이 값보다 더 작은 값으로 선거구를 나눌 수는 없다. www.acmicpc.net 선거구를 어떻게 조합해야 각 선거구끼리 연결되어있고, 선거구 내에서 개수는 상관없으므로 부분집합을 사용하였다. 전체적인 로직은, 1. 부분집합을 통한 선거구 나누기 2. 나눈 선거구가 유효한지 확인(특정 한 선거구 맛있으면 유효하지 않다.) 3. 유효하다면, 각 선거구 별 점수 구하기( 선거구 별로 재귀를 통한 점수 합산.) 4. 선거구 별 다시 한번 유효 확인(각 선거구는 서로 연결되어있으므로 만약 위에..
문제 출처: https://www.acmicpc.net/problem/1074 1074번: Z 한수는 크기가 2N × 2N인 2차원 배열을 Z모양으로 탐색하려고 한다. 예를 들어, 2×2배열을 왼쪽 위칸, 오른쪽 위칸, 왼쪽 아래칸, 오른쪽 아래칸 순서대로 방문하면 Z모양이다. 만약, N > 1이 라서 www.acmicpc.net 분할 정복을 이용한 재귀 문제이다. 초기 의사 코드는 행, 열 길이가 2일 때까지 재귀를 타고 들어가서, 0,0부터 4분 할로 접근하는 방식을 선택하였다. 이 방식은 결국 시간 초과로 실패... 지문을 제대로 보니 2^N X 2^N의 최대 크기를 가질 수 있으므로 당연히 가지치기(?)가 매우 중요하다. 또한 배열을 사용하지 않는데 처음에 배열을 만들어서 계속 메모리 초과가 발생..
문제 출처: https://www.acmicpc.net/problem/17281 17281번: ⚾ ⚾는 9명으로 이루어진 두 팀이 공격과 수비를 번갈아 하는 게임이다. 하나의 이닝은 공격과 수비로 이루어져 있고, 총 N이닝 동안 게임을 진행해야 한다. 한 이닝에 3아웃이 발생하면 이닝이 종 www.acmicpc.net 고민의 흔적↓↓ 이번 문제는 순열 + 구현 느낌의 문제였다. "가장 많은 득점을 하는 타순을 찾고, 그때의 득점을 구해보자." 이 문장을 보고 순열을 이용해야 겠다는 생각을 하게 되었다. 우선, 순열을 통해 타순을 정하고 나면 그 타순대로 진행하면 된다. 점수를 얻는 방식은 3 크기의 BOOLEAN형 배열을 사용하였다. 안타, 2루타, 3루타 일 경우, 3 크기 배열의 역순 탐색을 통해 해..