본문 바로가기

개발/algorithm

[java][algorithm] 배열의 최댓값 구하기

반응형

배열 요소의 최댓값 구하기


a[0], a[1], a[2]

 

max = a[0]

if(a[1] > max) max = a[1];

if(a[2] > max) max = a[2]'

 

max = a[0]

for(i=1; i< n; i++)

if(a[i] > max) max = a[i] 

 

for문이 1부터인 이유는 a[0]은 이미 max에 저장되어 있기 때문이고, 요소 개수가 n개이면 if문은 n-1개 작성해야 한다.

배열은 0부터 시작하기 때문에 최대 a[n-1]개

 

for문을 돌리면서 a[1] 부터 마지막 요소 a[n-1]까지 차례로 살펴본다. == 스캔한다 

 

랜덤으로 입력받은 키의 최댓값 구하기

package chap02;
import java.util.Random;
// 배열의 요소의 최댓값을 출력  (요솟수와 값을 난수로 생성)

class MaxOfArrayRand2_02_01 {
    // 배열 a의 최댓값을 구하여 반환
    static int maxOf(int[] a) {
      int max = a[0];
      for (int i = 1; i < a.length; i++)
         if (a[i] > max)
            max = a[i];
      return max;
   }

    public static void main(String[] args) {
      Random rand = new Random();

      System.out.println("키의 최댓값을 구합니다.");
      int num = 1 + rand.nextInt(20);      // 사람 수를 1~20의 난수로 생성하는
      int[] height = new int[num];         // 요솟수 num인 배열을 생성

      System.out.println("사람수는 " + num + "명입니다.");
      System.out.println("키는 아래처럼 됩니다.");
      for (int i = 0; i < num; i++) {
         height[i] = 100 + rand.nextInt(90);      // 요솟값을 난수로 결정
         System.out.println("height[" + i + "]:" + height[i]);
      }

      System.out.println("최댓값은 " + maxOf(height) + "입니다.");
   }
}
반응형