본문 바로가기
프로그래밍 기초/Java Festival

[Java Festival] 17. 3의 배수인 숫자 출력하기

by 제이투더문 2024. 6. 30.

 

 안녕하세요, 작가 J입니다. 이번에는 숫자를 입력받아 3의 배수인 숫자를 출력하는 프로그램을 작성해 보겠습니다. 문제를 분석하고 10개의 숫자를 입력받아 3의 배수를 출력하는 과정을 자세히 설명하겠습니다.

 

[Java Festival 17] 3의 배수인 숫자 출력하기

숫자를 입력 받아 3의 배수인 숫자를

출력하는 프로그램을 작성하세요.

 

 

 

문제 분석

이 문제는 사용자로부터 10개의 숫자를 입력받고, 그 중 3의 배수인 숫자를 출력하는 프로그램을 작성하는 것입니다. 이를 위해 다음과 같은 단계를 수행합니다:

  1. 사용자로부터 10개의 정수를 입력받습니다.
  2. 각 정수를 확인하여 3의 배수인지 판단합니다.
  3. 3의 배수인 숫자를 출력합니다.

 

코드 풀이

코드 풀이 1: 기본적인 반복문과 조건문을 이용한 방식

import java.util.Scanner;

public class Ex17 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        
        int[] numbers = new int[10];
        
        // 사용자로부터 10개의 정수 입력받기
        for (int i = 0; i < 10; i++) {
            System.out.print((i + 1) + "번 째 정수 입력>>");
            numbers[i] = sc.nextInt();
        }
        
        System.out.print("3의 배수 : ");
        
        // 3의 배수 출력하기
        for (int i = 0; i < 10; i++) {
            if (numbers[i] % 3 == 0) {
                System.out.print(numbers[i] + " ");
            }
        }
        
        sc.close();
    }
}

코드 설명

1. 사용자 입력 받기

사용자로부터 10개의 정수를 배열에 저장합니다.

 

  • Scanner sc = new Scanner(System.in);: Scanner 객체를 생성하여 사용자 입력을 받습니다.
  • int[] numbers = new int[10];: 10개의 정수를 저장할 배열을 선언합니다.
  • for (int i = 0; i < 10; i++): 10번 반복하면서 사용자로부터 정수를 입력받습니다.
  • System.out.print((i + 1) + "번 째 정수 입력>>");: 사용자에게 입력을 요청하는 메시지를 출력합니다.
  • numbers[i] = sc.nextInt();: 사용자가 입력한 정수를 배열에 저장합니다.

2. 3의 배수 출력하기

배열의 각 요소를 확인하여 3의 배수인 숫자를 출력합니다.

 

  • System.out.print("3의 배수 : ");: 결과를 출력하기 위한 메시지를 출력합니다.
  • for (int i = 0; i < 10; i++): 배열의 각 요소를 순회하는 반복문입니다.
  • if (numbers[i] % 3 == 0): 현재 요소가 3의 배수인지 확인합니다.
  • System.out.print(numbers[i] + " ");: 3의 배수인 숫자를 출력합니다.

 

코드 풀이 2: 중간 저장소를 사용한 방식

이번에는 3의 배수를 저장할 배열을 사용하여 3의 배수를 출력하는 방법을 보여드리겠습니다.

import java.util.Scanner;

public class Ex17Alternate {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        
        int[] numbers = new int[10];
        int[] multiplesOfThree = new int[10];
        int count = 0;
        
        // 사용자로부터 10개의 정수 입력받기
        for (int i = 0; i < 10; i++) {
            System.out.print((i + 1) + "번 째 정수 입력>>");
            numbers[i] = sc.nextInt();
        }
        
        // 3의 배수를 찾아 저장하기
        for (int i = 0; i < 10; i++) {
            if (numbers[i] % 3 == 0) {
                multiplesOfThree[count] = numbers[i];
                count++;
            }
        }
        
        // 3의 배수 출력하기
        System.out.print("3의 배수 : ");
        for (int i = 0; i < count; i++) {
            System.out.print(multiplesOfThree[i] + " ");
        }
        
        sc.close();
    }
}

 

 

 

코드 설명

 

1. 사용자 입력 받기

사용자로부터 10개의 정수를 배열에 저장합니다.

 

  • Scanner sc = new Scanner(System.in);: Scanner 객체를 생성하여 사용자 입력을 받습니다.
  • int[] numbers = new int[10];: 10개의 정수를 저장할 배열을 선언합니다.
  • int[] multiplesOfThree = new int[10];: 3의 배수를 저장할 배열을 선언합니다.
  • int count = 0;: 3의 배수의 개수를 저장할 변수를 초기화합니다.
  • for (int i = 0; i < 10; i++): 10번 반복하면서 사용자로부터 정수를 입력받습니다.
  • System.out.print((i + 1) + "번 째 정수 입력>>");: 사용자에게 입력을 요청하는 메시지를 출력합니다.
  • numbers[i] = sc.nextInt();: 사용자가 입력한 정수를 배열에 저장합니다.

2. 3의 배수 찾기

배열의 각 요소를 확인하여 3의 배수인 숫자를 multiplesOfThree 배열에 저장합니다.

 

  • for (int i = 0; i < 10; i++): 배열의 각 요소를 순회하는 반복문입니다.
  • if (numbers[i] % 3 == 0): 현재 요소가 3의 배수인지 확인합니다.
  • multiplesOfThree[count] = numbers[i];: 3의 배수인 숫자를 multiplesOfThree 배열에 저장합니다.
  • count++: 3의 배수의 개수를 증가시킵니다.

3. 3의 배수 출력하기

multiplesOfThree 배열에 저장된 3의 배수를 출력합니다.

 

  • System.out.print("3의 배수 : ");: 결과를 출력하기 위한 메시지를 출력합니다.
  • for (int i = 0; i < count; i++): multiplesOfThree 배열의 각 요소를 순회하는 반복문입니다.
  • System.out.print(multiplesOfThree[i] + " ");: 3의 배수인 숫자를 출력합니다.

 

마무리

 이번 예제에서는 사용자로부터 10개의 숫자를 입력받아 3의 배수인 숫자를 출력하는 두 가지 방법을 배웠습니다. 이를 통해 배열을 사용하여 데이터를 저장하고, 조건문을 사용하여 특정 조건을 만족하는 값을 출력하는 방법을 익힐 수 있었습니다. 저장소를 활용하는 것은 좋은 프로그래밍 방법입니다.

 

 프로그래밍을 시작하는 모든 분께 이 예제가 도움이 되길 바랍니다. 앞으로도 다양한 유형의 문제를 통해 여러분의 학습을 도울 수 있도록 노력하겠습니다. 감사합니다!