7개의 자연수가 주어질 때, 이들 중 홀수인 자연수들을 모두 골라 그 합을 구하고, 고른 홀수들 중 최솟값을 찾는 프로그램을 작성하시오.
예를 들어, 7개의 자연수 12, 77, 38, 41, 53, 92, 85가 주어지면 이들 중 홀수는 77, 41, 53, 85이므로 그 합은
77 + 41 + 53 + 85 = 256
이 되고,
41 < 53 < 77 < 85
이므로 홀수들 중 최솟값은 41이 된다.
📝Input
입력의 첫째 줄부터 일곱 번째 줄까지 한 줄에 하나의 자연수가 주어진다. 주어지는 자연수는 100보다 작다.
🖨️ Output
홀수가 존재하지 않는 경우에는 첫째 줄에 -1을 출력한다. 홀수가 존재하는 경우 첫째 줄에 홀수들의 합을 출력하고, 둘째 줄에 홀수들 중 최솟값을 출력한다.
🎯 풀이
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int[] arr = new int[7];
int min = Integer.MAX_VALUE;
int sum = 0;
for(int i = 0; i < 7; i++) {
arr[i] = sc.nextInt();
if(arr[i] % 2 != 0) {
sum += arr[i];
min = Math.min(min, arr[i]);
}
}
if (sum ==0) {
System.out.println(-1);
} else {
System.out.println(sum);
System.out.println(min);
}
}
}
🍀 사용자로부터 입력을 받기 위해 Scanner 객체를 생성
Scanner sc = new Scanner(System.in);
🍀 7개의 정수를 담을 배열을 선언
int[] arr = new int[7];
🍀최소값을 저장할 변수 min을 Integer.MAX_VALUE로 설정. 이는 Integer 형의 최대의 값(2,147,483,647)으로 설정된다. => 최소값을 찾을 때 초기 비교를 수월하게 가능
int min = Integer.MAX_VALUE;
🍀 홀수의 합을 저장할 변수 sum 을 선언&초기화
🍀 사용자로부터 정수를 입력받아 배열의 각 요소에 저장
🍀 입력받은 정수가 홀수일경우 합계 계산, Math.min 함수를 통해 각 파라미터 중 최소값을 선택
int sum = 0;
for(int i = 0; i < 7; i++) {
arr[i] = sc.nextInt();
if(arr[i] % 2 != 0) {
sum += arr[i];
min = Math.min(min, arr[i]);
}
}