loading

새소식

CodingTest/BaekJoon Online Judge

[BOJ] 백준 2576번: 홀수 - Java(자바) 문제 해설 및 풀이

  • -
728x90
반응형

 

 

백준 2576번: 홀수

 

 

 

 

 

 

❓ 문제

 

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]);
            }
        }

 

 

🍀 입력받은 정수 중 단 한개의 홀수가 없을 경우(== sum이 0인 경우) -1을 출력

🍀 홀수가 단 한개라도 있을 경우 합계와 최소값을 출력

if (sum ==0) {
            System.out.println(-1);
        } else {
            System.out.println(sum);
            System.out.println(min);
        }

 

 

 

 

 

 

 

 

 

 

💡 출력 결과

 



 

 

 

 

 

 


 

 

 

728x90
반응형
Contents

📝 포스팅 주소를 복사했습니다 📝

이 글이 도움이 되었다면 공감 부탁드립니다👍