[Java] 배열 연습문제 풀이

2024. 8. 4. 22:05Java/참조타입

Q1. 주어진 배열에서 최대값과 최소값을 출력하는 코드를 작성하시오. (for문)

 

A. 쉬운 문제는 Arrays.sort()를 이용하여 꼼수(?)를 쓰면 쉽게 풀 수 있다. 숫자를 오름차순으로 정렬하기 때문에 처음과 끝 값을 불러오면 최소값과 최대값이 된다. 

  public static void main(String[] args) {
    int[] score = {79,88,91,33,100,55,95};
    Arrays.sort(score);
    System.out.println("최소값: " + score[0]);
    System.out.println("최대값: " + score[score.length-1]);
  }

 

정석으로 풀면 다음과 같다. 

  public static void main(String[] args) {
    int[] score = {79,88,91,33,100,55,95};
    int min = score[0];
    int max = score[0];

    for(int i=0; i<score.length; i++){
      if(max < score[i]){
        max = score[i];
      } else if(min > score[i]){
        min = score[i];
      }
    }

    System.out.println("최소값: " + min);
    System.out.println("최대값: " + max);
  }

배열 중에 임의의 값을 대입한 뒤에 배열 중에 이 값보다 큰 값이나 작은 값이 있는지 계속 확인합니다. 그리고 발견하면 그 값을 대입해서 출력합니다. 

 

Q2. 주어진 배열의 전체 합과 평균을 구해 출력하는 코드를 작성해보세요. (for 중첩문)

public static void main(String[] args) {
  int[][] array = {
      {95,86},
      {83,92,96},
      {78,83,93,87,88}
  };
  int sum = 0;
  int count = 0;

  for(int i = 0; i < array.length; i++){
    for(int j = 0; j < array[i].length; j++){
      sum += array[i][j];
      count++;
    }
  }

  System.out.println("전체합 : " + sum);
  System.out.println("전체평균 : " + (double)sum/count);
}

 

A. N차원 배열을 불러오기 위해서는 중첩 for문을 사용한다. length를 사용하기 어렵기 때문에(불가능하지는 않다. 다만, for문을 사용해서 각 항목의 length를 다 구해서 더해야하기 때문에 번거롭다) 중간에 count의 숫자를 하나씩 높여서 전체 갯수를 구할 수 있다. 그리고 int는 소수점을 저장하지 않기 때문에 double로 강제 변환하여 저장해주었다. 

 

Q3. 0에서 9까지 담겨있는 배열 numArr이 있다. 각 배열의 인덱스에 저장된 값을 임의에 위치한 값과 바꾸는 작업을 100번 하고 그 결과를 출력해보시오. 

public static void main(String[] args) {
    int[] numArr = {0,1,2,3,4,5,6,7,8,9};
    int tmp = 0;

    for(int i = 1; i <= 100; i++){
      for(int y = 0; y <numArr.length; y++){
        tmp = numArr[y];
        int random = (int)(Math.random() * numArr.length);
        numArr[y] = numArr[random];
        numArr[random] = tmp;
      }
    }
    System.out.println(Arrays.toString(numArr));
  }

 

A. 임시값을 만들어서 값을 바꾸어치는 방법이다. 유명한 방법이라 큰 어려움은 없다. 배열은 Arrays.toString으로 출력이 가능하다. 

'Java > 참조타입' 카테고리의 다른 글

[Java] 배열 연습문제  (0) 2024.08.04
[Java] 배열  (0) 2024.08.04
[Java] 참조 타입, 문자열, 열거형  (0) 2024.08.03