[백준] 2798번 블랙잭
문제
문제출처 : Baekjoon
풀이
import java.util.*;
public class Main {
public int solution(int[] arr, int num){
int result = 0;
int sum = 0;
for(int i = 0; i < arr.length-2; i++){
for(int j = i+1; j < arr.length-1; j++){
for(int k = j+1; k < arr.length; k++){
sum = arr[i] + arr[j] + arr[k];
if(sum <= num && sum > result){
result = sum;
}
}
}
}
return result;
}
public static void main(String[] args) {
Main function = new Main();
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
int M = sc.nextInt();
int[] arr = new int[N];
for(int i = 0; i < N; i++){
arr[i] = sc.nextInt();
}
sc.close();
System.out.println(function.solution(arr, M));
}
}
회고
- 브루트포스 알고리즘을 공부한적은 없지만 모든걸 검사하는 알고리즘이라 for문을 이용해서 하면 금방 하겠네~ 하고 풀었는데, for문안에 조건을 주는부분이 많이 헷갈렸다. 쉬울것같아도 만만하게 보지 않기ㅠㅠ..!
- i,j,k에 1,2,3을 넣어서 했었다가 여기서도 문제가 생겼고.. 제일 큰 이슈는 내 눈 이슈였다. 라섹한지 좀 지났는데도(한3주쯤 된듯?) 컴퓨터 글씨가 잘 안보이는데 i,j를 잘못써서 계속 arrayindexoutofboundsexception 이 에러가 계속나서 뭐지뭐지하고 모니터에 얼굴을 가까이하고 눈 크게 하고 보니 j for문에 j를 안쓰고 i를 쓴것을 발견…. 후… 내 눈이 제일 큰 이슈였다😥
- 한번 더 풀어보기!