본문 바로가기
Baekjoon 자바 코드/1차원 배열

[백준] 2562번 최댓값 풀이 코드 (Java 자바)

by 망댕이 2024. 7. 23.
반응형

접근 방법)

 

배열을 이용하지 않고 for문 안에서 9번 반복작업을 통해 값 크기 비교를 하여 문제를 풀 수 있다

하지만 배열 파트인 만큼 1차원 배열을 사용하여 문제를 풀어보도록 하자.

 

크기가 N인 1차원 배열을 생성한 후 두 번째 줄에 입력받은 값들을 모두 배열 안에 넣어준다. 그리고 배열 안의 값들을 하나씩 비교하면서 앞 값과 비교했을 때 크면 max, 작으면 min으로 할당하여 N-1번 배열까지 반복작업을 하면 최대, 최솟값을 구할 수 있다.

 

 

▷ 1차원 배열 생성

 

1차원 배열 생성은 for문을 이용하여 쉽게 나타낼 수 있다.

int[] g = new int[N];

for(int i = 0; i < N; i++){ 
    int a = s.nextInt(); // Scanner s = new Scanner(System.in)
    g[i] = a;
}

 

배열 [0]부터 배열 [N-1] 번까지 값을 넣어주는 반복 작업으로 1차원 배열을 생성할 수 있다.

 

▷ max와 그때 숫자 번호를 구하기 위한 for문

int max = 0;
int max_num = 0;
        
for(int j= 0; j < n; j++){
    if(g[j] > max){
        max = g[j];
        max_num = j+1;
    }
}

 

앞 값과 비교하여 클 때는 max에 할당, if문을 충족시켰을 때 j+1 값이 최댓값에 해당하는 숫자 번호이다.


정답 코드 1)

import java.util.Scanner;

class Main{
    public static void main(String[] args){
        Scanner s = new Scanner(System.in);
        int[] g = new int[9];
        int max = 0;
        int max_num = 0;
        
        for(int i = 0; i < 9; i++){
            int a = s.nextInt();
            g[i] = a;
        }
        
        for(int j = 0; j < 9; j++){
            if(g[j] >= max){
                max = g[j];
                max_num = j+1;
            }
        }
        System.out.print(max+"\n"+max_num);
    }
}

 

위는 배열을 사용하여 배열 안에 값을 집어넣고 배열 처음부터 끝까지 값을 비교하며 최댓값과 그에 해당하는 숫자번호를 찾는 코드이다.

정답 코드 2)

import java.util.Scanner;

class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        int max = 0;
        int max_num = 0;
        
        for(int i = 0; i < 9; i++){
            int num = sc.nextInt();
            if(num > max){
                max = num;
                max_num = i+1;
            }
        }
        System.out.print(max+"\n"+max_num);
    }
}

 

간단하게 for문을 이용하여 최댓값과 그에 해당하는 숫자번호를 찾는 코드이다.

반응형