[백준풀이]백준2798블랙잭(자바)

SeoYehJoon·2023년 10월 6일
0


풀코드

package baek_2798;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class BlackJack
{
	public static void main(String[] args) throws IOException
	{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
		StringTokenizer st = new StringTokenizer(br.readLine());
		
		int num = Integer.parseInt(st.nextToken());
		long cutline = Long.parseLong(st.nextToken());
		
		st= new StringTokenizer(br.readLine());
		
		long[] list = new long[num];//list내의 숫자들은 100,000을 넘지 않는다.
		for(int i=0;i<num;i++)
		{
			list[i] = Long.parseLong(st.nextToken());
		}
		
		long sum=0;
		long result_sum=0;
		int debuf=0;
		for(int i=0;i<num;i++)
		{
			sum +=list[i];
			for(int j=i+1;j<num;j++)
			{
				sum+=list[j];
				for(int q=j+1;q<num;q++)
				{
					sum+=list[q];
					if((cutline-result_sum>cutline-sum) &&sum<=cutline)//현재 합이 컷트라인에 더 가깝다면
					{
						//System.out.println("list[i] : "+list[i]+"\n"+
						//					"list[j] : "+list[j]+"\n"+
						//					"list[q] : "+list[q]);
						result_sum = sum;
					}
					sum-=list[q];
				}
				sum-=list[j];
			}
			sum-=list[i];
		}
		
		System.out.println(result_sum);
	}
}




풀이


임시합과 결과로 제출할 합을 비교하는 식을 만들면 된다. 카드조합이 모두 만들어지는건 반복문 제일 안쪽이니 그곳에 if문 구현


※주의사항※ --> 위의 그림처럼 각 반복문이 끝나면 해당값을 빼주면서 진행하자






profile
책, 블로그 내용을 그대로 재정리하는 것은 가장 효율적인 시간 낭비 방법이다. 벨로그에 글을 쓸때는 직접 문제를 해결한 과정을 스크린샷을 이용해 정리하거나, 개념을 정리할때는 최소2,3개소스에서 이해한 지식을 정리한다.

0개의 댓글