문제 SWEA(SW Expert Academy) 3234번 준환이의 양팔저울 [D4] 풀이 양팔저울에 올리는 순서 정하기 => 순열 어느쪽에 올릴지 정하기 => 부분집합 무게를 입력받아 우선 올려놓을 순서를 정함. sorted배열에 실행완료 된 순열을 저장하며, 순열이 완성되었을 경우(cnt==N) 어느쪽에 올릴지 정함. 현재 추를 오른쪽에 올리는 경우, 왼쪽에 올리는 경우를 각각 실행. 실행도중 left
순열 알고리즘
문제 입력 첫째 줄에 이닝 수 N(2 ≤ N ≤ 50)이 주어진다. 둘째 줄부터 N개의 줄에는 각 선수가 각 이닝에서 얻는 결과가 1번 이닝부터 N번 이닝까지 순서대로 주어진다. 이닝에서 얻는 결과는 9개의 정수가 공백으로 구분되어져 있다. 각 결과가 의미하는 정수는 다음과 같다. 안타: 1 2루타: 2 3루타: 3 홈런: 4 아웃: 0 각 이닝에는 아웃을 기록하는 타자가 적어도 한 명 존재한다. 출력 아인타팀이 얻을 수 있는 최대 점수를 출력한다. https://www.acmicpc.net/problem/17281 17281번: ⚾ ⚾는 9명으로 이루어진 두 팀이 공격과 수비를 번갈아 하는 게임이다. 하나의 이닝은 공격과 수비로 이루어져 있고, 총 N이닝 동안 게임을 진행해야 한다. 한 이닝에 3아웃이..
문제 SWEA(SW Expert Academy) 6808번- 규영이와 인영이의 카드게임 (D3) 풀이 정해진 값들 중, 어떻게 배열하는지에 따라 나뉘는 순열 문제 isSelected의 boolean배열을 활용하여 현재 인영이가 낼 수 있는 값들의 순열을 구함 기저조건을 만족하면(순열의 크기가 R이 되면), 규영이와 인영이의 점수를 각각 계산해서 승부를 나눔 코드 import java.io.*; import java.util.*; public class Solution{ static int N = 18, R = 9; static int[] gu; static int[] in; static int[] rem_card; static boolean[] isSelected; static int win; publi..
문제 https://www.acmicpc.net/problem/17135 17135번: 캐슬 디펜스 첫째 줄에 격자판 행의 수 N, 열의 수 M, 궁수의 공격 거리 제한 D가 주어진다. 둘째 줄부터 N개의 줄에는 격자판의 상태가 주어진다. 0은 빈 칸, 1은 적이 있는 칸이다. www.acmicpc.net 풀이 아처 3명의 위치를 0~m-1사이에서 정해야 함 -> 조합-기저조건: cnt==3(아처 3명의 위치가 정해졌을때) enemy의 경우, 변경되면 안되는 정보이므로 tmp_enemy를 local 변수로 만들어 기존 데이터 보호 tmp_enemy가 비어있을 때까지(적이 모두 없어질때까지) while문을 돌아, 적을 죽인 횟수를 구한다. 이때 적과의 거리가 유효값이라면 min값(거리 최솟값)을 바꿔주고 ..