https://www.acmicpc.net/problem/2798
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int N = in.nextInt();
int M = in.nextInt();
int[] arr = new int[N];
for (int i = 0; i < N; i++) {
arr[i] = in.nextInt();
}
int result = search(arr, N, M);
System.out.println(result);
}
// 탐색
static int search(int[] arr, int N, int M) {
int result = 0;
// 3개를 고르기 때문에 첫번째 카드는 N - 2 까지만 순회
for (int i = 0; i < N - 2; i++) {
// 두 번째 카드는 첫 번째 카드 다음부터 N - 1 까지만 순회
for (int j = i + 1; j < N - 1; j++) {
// 세 번째 카드는 두 번째 카드 다음부터 N 까지 순회
for (int k = j + 1; k < N; k++) {
// 3개 카드의 합 변수 temp
int temp = arr[i] + arr[j] + arr[k];
// M과 세 카드의 합이 같다면 temp return 및 종료
if (M == temp) {
return temp;
}
// 세 카드의 합이 이전 합보다 크면서 M 보다 작을 경우 result 갱신
if(result < temp && temp < M) {
result = temp;
}
}
}
}
// 모든 순회를 마치면 result 리턴
return result;
}
}
https://www.acmicpc.net/problem/2231
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int N = in.nextInt();
int result = 0;
for(int i = 0; i < N; i++) {
int number = i;
int sum = 0; // 각 자릿수 합 변수
while(number != 0) {
sum += number % 10; // 각 자릿수 더하기
number /= 10;
}
// i 값과 각 자릿수 누적합이 같을 경우 (생성자를 찾았을 경우)
if(sum + i == N) {
result = i;
break;
}
}
System.out.println(result);
}
'Java-Study' 카테고리의 다른 글
Java Study : 12주차 - 프로그래머스 문제풀이 (0) | 2023.02.03 |
---|---|
Java Study : 12주차 - 학점 산출 프로그램 만들기 (0) | 2023.02.03 |
Java Study : 11주차 - 자바 입출력 (0) | 2023.01.22 |
Java Study : 10주차 정리 - 예외처리 (0) | 2023.01.14 |
Java Study : 9주차 - 백준 문제풀이 (0) | 2023.01.08 |