[알고리즘] 9229. 한빈이와 Spot Mart

2024. 2. 18. 15:43Algorithm/with Java

0. 문제

 

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

 


1. 문제 이해

 

  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