[Java] Section8 - 문제 풀이 2

코드 속의 "진돌"·2024년 1월 8일
1
post-thumbnail

✅ 가장 작은 수, 큰 수 찾기


🔔 사용자로부터 n개의 정수를 입력받아 배열에 저장한 후, 배열 내에서 가장 작은 수와 가장 큰 수를 출력하는 프로그램을 작성하자.

✏️ 실행 결과 예시

입력받을 숫자의 개수를 입력하세요 : 3
3개의 정수를 입력하세요 : 
1
2
5
가장 작은 정수 : 1
가장 큰 정수 : 5

✏️ 정답

package array.ex;

import java.util.Scanner;

public class ArrayEx6 {

  public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);

    System.out.print("입력받을 숫자의 개수를 입력하세요 : ");
    int count = scanner.nextInt();

    int[] numbers = new int[count];
    int minNumber, maxNumber;

    System.out.println(count + "개의 정수를 입력하세요 : ");
    for (int i = 0; i < count; i++) {
      numbers[i] = scanner.nextInt();
    }
    
    minNumber = maxNumber = numbers[0];

    for (int i = 1; i < count; i++) {
      if (minNumber > numbers[i]) {
        minNumber = numbers[i];
      }
      if (maxNumber < numbers[i]) {
        maxNumber = numbers[i];
      }
    }

    System.out.println("가장 작은 정수 : " + minNumber);
    System.out.println("가장 큰 정수 : " + maxNumber);
  }
}

✅ 2차원 배열 1


🔔 사용자로부터 학생 4명의 국어, 수학, 영어 점수를 입력받아 각 학생의 총점을 계산하는 프로그램을 작성하자.

  • 2차원 배열 사용

✏️ 실행 결과 예시

1번 학생의 성적을 입력하세요 :
국어 점수 : 100
영어 점수 : 80
수학 점수 : 70
2번 학생의 성적을 입력하세요 :
국어 점수 : 30
영어 점수 : 40
수학 점수 : 60
3번 학생의 성적을 입력하세요 :
국어 점수 : 60
영어 점수 : 70
수학 점수 : 50
4번 학생의 성적을 입력하세요 :
국어 점수 : 90
영어 점수 : 100
수학 점수 : 80
1번 학생의 총점 : 250, 평균 : 83.33333333333333
2번 학생의 총점 : 120, 평균 : 40.0
3번 학생의 총점 : 180, 평균 : 60.0
4번 학생의 총점 : 270, 평균 : 90.0

✏️ 정답

package array.ex;

import java.util.Scanner;

public class ArrayEx7 {

  public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);

    int[][] scores = new int[4][3];
    String[] subjects = {"국어", "영어", "수학"};

    for (int i = 0; i < 4; i++) {
      System.out.println((i + 1) + "번 학생의 성적을 입력하세요 : ");
      for (int j = 0; j < 3; j++) {
        System.out.print(subjects[j] + " 점수 : ");
        scores[i][j] = scanner.nextInt();
      }
    }

    for (int i = 0; i < 4; i++) {
      int total = 0;
      for (int j = 0; j < 3; j++) {
        total += scores[i][j];
      }

      double average = (double) total / 3;
      System.out.println((i + 1) + "번 학생의 총점 : " + total + ", 평균 : " + average);
    }
  }
}

✅ 2차원 배열 2


🔔 이전 문제(ArrayEx7)에서 학생수를 입력받도록 개선하자.

✏️ 실행 결과 예시

학생수를 입력하세요 : 
1번 학생의 성적을 입력하세요 :
국어 점수 : 10
영어 점수 : 20
수학 점수 : 30
2번 학생의 성적을 입력하세요 :
국어 점수 : 10
영어 점수 : 10
수학 점수 : 10
3번 학생의 성적을 입력하세요 :
국어 점수 : 20
영어 점수 : 20
수학 점수 : 20
1번 학생의 총점 : 60, 평균 : 20.0
2번 학생의 총점 : 30, 평균 : 10.0
3번 학생의 총점 : 60, 평균 : 20.0

✏️ 정답

package array.ex;

import java.util.Scanner;

public class ArrayEx8 {

  public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);

    System.out.print("학생 수를 입력하세요 : ");
    int studentCount = scanner.nextInt();

    int[][] scores = new int[studentCount][3];
    String[] subjects = {"국어", "영어", "수학"};

    for (int i = 0; i < studentCount; i++) {
      System.out.println((i + 1) + "번 학생의 성적을 입력하세요 : ");
      for (int j = 0; j < 3; j++) {
        System.out.print(subjects[j] + " 점수 : ");
        scores[i][j] = scanner.nextInt();
      }
    }

    for (int i = 0; i < studentCount; i++) {
      int total = 0;
      for (int j = 0; j < 3; j++) {
        total += scores[i][j];
      }

      double average = (double) total / 3;
      System.out.println((i + 1) + "번 학생의 총점 : " + total + ", 평균 : " + average);
    }
  }
}
profile
매일 성장하는 주니어 개발자의 기록📝

0개의 댓글