ToBe끝판왕

[ 알고리즘 ] 백준 10818번 문제 - 자바( JAVA ) 본문

■ 알고리즘/백준 JAVA

[ 알고리즘 ] 백준 10818번 문제 - 자바( JAVA )

업그레이드중 2022. 5. 31. 11:26
반응형

주의사항

※ 백준에서 정해진 출력 형식을 출력해야 한다.
※ 백준 알고리즘에서는 클래스명을 Main으로 해주어야 한다.

 


 

백준 10818번 문제

 

백준 알고리즘의 단계별 문제 풀기

4단계 < 1차원 배열 >

 

 

 해당 문제 링

https://www.acmicpc.net/problem/10818

 

10818번: 최소, 최대

첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다.

www.acmicpc.net

 


 

코딩 하기

 

1) Scanner 사용

import java.util.Scanner;
import java.util.Arrays;

public class Main {

	public static void main( String args[] ) {
    
    	Scanner sc = new Scanner( System.in );
        
        int N = sc.nextInt();
        int[] arr = new int[N];
        
        for( int i=0; i<N; i++ ) {
        	arr[i] = sc.nextInt();
        }
        
        sc.close();
        
        Arrays.sort( arr );
        System.out.print( arr[0] + " " + arr[N - 1 ] );
    }
}

 

 

2) BufferedReader 사용

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.util.Arrays;
import java.util.StringTokenizer;

public class Main {

	public static void main( String[] args ) throws IOException {
    	
        BufferedReader br = new BufferedReader( new InputStreamReader( System.in ) );
        
        int N = Integer.parseInt( br.readLine() );
        StringTokenizer st = new StringTokenizer( br.readLine(), " " );
        
        int index = 0;
        int[] arr = new int[N];
        while( st.hasMoreTokens() ) {
        	arr[index] = Integer.parseInt( st.nextToken() );
            index++;
        }
        
        Arrays.sort( arr );
        System.out.print( arr[0] + " " + arr[N - 1] );
    }
}

 

 

 

문제 해결

 

※ 주의사항

N개의 정수를 공백으로 구분해서 주어진다.

 

 

1) Scanner 사용

N을 입력받아 해당 크기의 배열을 선언한다.

        int N = sc.nextInt();
        int[] arr = new int[N];

 

arr 배열원소에 for반복문을 사용하여 입력받은 값을 넣어준다.

        for( int i=0; i<N; i++ ) {
        	arr[i] = sc.nextInt();
        }

 

Array.sort( ) 메서드를 사용하여 최대값과 최소값을 구한다.

Array.sort( ) 메서드는 원소값을 오름차순으로 정렬해주기 때문에 최소값은 배열의 첫번째 원소 ( index 0 ) 

최대값은 마지막 원소 ( arr.length-1 )에 있기 때문에 이를 출력해준다.

        Arrays.sort( arr );
        System.out.print( arr[0] + " " + arr[N - 1 ] );

 

 

2) BufferedReader 사용

입력받은 정수들을 배열에 저장하기 위해서 StringToken에 들어있는 모든 토큰들이 없어질때까지

while 반복문을 사용하여 배열에 모두 담는다.

( hasMoreTokens( )는 StringTokenizer에 토큰이 남아있으면 true, 비어있으면 false를 반환한다. )

int index = 0;
        int[] arr = new int[N];
        while( st.hasMoreTokens() ) {
        	arr[index] = Integer.parseInt( st.nextToken() );
            index++;
        }

 

 

 

반응형
Comments