본문 바로가기
with my rubber duck/codingTest

[백준 2798] 블랙잭 풀어보기 쉽군 ㅎ + 복습

by stilinski 2022. 7. 15.
728x90

https://www.acmicpc.net/problem/2798

 

2798번: 블랙잭

첫째 줄에 카드의 개수 N(3 ≤ N ≤ 100)과 M(10 ≤ M ≤ 300,000)이 주어진다. 둘째 줄에는 카드에 쓰여 있는 수가 주어지며, 이 값은 100,000을 넘지 않는 양의 정수이다. 합이 M을 넘지 않는 카드 3장

www.acmicpc.net

//1. 카드개수(N), 블랙잭 숫자(M) 입력받기
//2. 카드개수만큼 숫자 입력받기
//3. 숫자카드 3개 더한 값 중에 M에 가까운 수 구하기
import java.util.Scanner;
class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        int N=sc.nextInt();
        int M=sc.nextInt();
        int[] cardNums = new int[N];
        for(int i=0;i<N;i++){
            cardNums[i]=sc.nextInt();
        }
        int sum=0;
        for(int i=0;i<N;i++){
            for(int j=i+1;j<N;j++){
                for(int k=j+1;k<N;k++){
                    int temp= cardNums[i] + cardNums[j] + cardNums[k];
                    if(temp>sum && temp<=M){
                        sum=temp;
                    }
                }
            }
        }
        System.out.println(sum);
    }
}

쉽게느껴지다니 나도 발전했나보군.

오늘은 컴파일 에러도 안남.

맨처음 풀면 컴파일 에러 기본인데 ㅋㅋ 장족의발전이군

 

 

+ 복습 2220717

//입력받을 값의 개수 N
//넘으면 안되는 수 M
import java.util.Scanner;

class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        int N = sc.nextInt();
        int M = sc.nextInt();
        int[] nums = new int[N];
        
        for(int i = 0;i<N;i++){
            nums[i]=sc.nextInt();
        }
        
        int biggestSum = 0;
        for(int i=0;i<N-2;i++){
            for(int j=i+1;j<N-1;j++){
                for(int k=j+1;k<N;k++){
                   int temp = nums[i]+nums[j]+nums[k];
                    if(temp==M){
                        biggestSum=temp;
                    }
                    if(temp>biggestSum && temp<=M){
                        biggestSum=temp;
                    }
                }
            }
        }
        System.out.println(biggestSum);
    }
}
728x90

댓글