[알고리즘] 9229. 한빈이와 Spot Mart
2024. 2. 18. 15:43ㆍAlgorithm/with Java
0. 문제
1. 문제 이해
- 조합
종류 | 설명 | 기호 |
순열 | N개의 원소 중 R개의 원소로 순서를 가진 부분집합을 만드는 경우의 수 | nPr |
조합 | N개의 원소 중 R개의 원소로 부분집합을 만드는 경우의 수 | nCr |
부분집합 | N개의 원소로 부분집합을 만드는 모든 경우의 수 | nHr |
2. 제출
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class SWEA9229 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
StringBuffer sb = new StringBuffer();
int[] arr; // 과자 봉지 무게
int N, M, ret; // 개수, 무게 제한, 결과
int T = Integer.parseInt(st.nextToken());
for(int tc=1; tc<=T; tc++){
st = new StringTokenizer(br.readLine());
N = Integer.parseInt(st.nextToken());
M = Integer.parseInt(st.nextToken());
ret = -1;
arr = new int[N];
// 과자 봉지 무게 저장
st = new StringTokenizer(br.readLine());
for(int i=0; i<N; i++){
arr[i] = Integer.parseInt(st.nextToken());
}
// 과자 봉지 선택 = 고정된 크기의 조합(중복X)
int sum;
for(int i=0; i<N; i++){
for(int j=i+1; j<N; j++){
sum = arr[i] + arr[j];
if(sum > M) continue;
ret = Math.max(ret, sum);
}
}
sb.append("#").append(tc).append(" ").append(ret).append("\n");
}
System.out.println(sb.toString());
br.close();
}
}
'Algorithm > with Java' 카테고리의 다른 글
[알고리즘] 1713. 후보 추천하기 (0) | 2024.02.18 |
---|---|
[알고리즘] 2493. 탑 (0) | 2024.02.18 |
[알고리즘] 1233. 사칙연산 유효성 검사 (0) | 2024.02.18 |
[Java] 비트 마스킹, Next_Permutation (0) | 2024.02.18 |
[Java] 트리 (0) | 2024.02.18 |