ToBe끝판왕

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

■ 알고리즘/백준 JAVA

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

업그레이드중 2022. 6. 8. 10:45
반응형

주의사항

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

 


 

백준 2562번 문제

 

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

4단계 < 1차원 배열 >

 

 

 해당 문제 링

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

 

2562번: 최댓값

9개의 서로 다른 자연수가 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 번째 수인지를 구하는 프로그램을 작성하시오. 예를 들어, 서로 다른 9개의 자연수 3, 29, 38, 12, 57, 74, 40, 85, 61 이 주어

www.acmicpc.net

 


 

코딩 하기

 

1) Scanner 사용

import java.util.Scanner;

public class Main {

	public static void main( String[] args ) {
    	
        Scanner sc = new Scanner( System.in );
        
        int[] arr = { sc.nextInt(), sc.nextInt(), sc.nextInt(),
        		sc.nextInt(), sc.nextInt(), sc.nextInt(),
                	sc.nextInt(), sc.nextInt(), sc.nextInt() };
                    
        sc.close();
        
        int count = 0;
        int max = 0;
        int index = 0;
        
        for( int value : arr ) {
        
        	count++;
            
            if( value > max ) {
            	max = value;
                index = count;
            }
        }
        
        System.out.print( max + "\n" + index );
    }
}

 

 

2) BufferedReader 사용

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;

public class Main {

	public static void main( String[] args ) throws IOException {
    
    	BufferedReader br = new BufferedReader( new InputStreamReader( System.in ) );
        
        int[] arr = new int[9];
        
        for( int i=0; i<9; i++ ) {
        
        	// BufferedReader 기본반환값이 문자이므로 형변화만 주의해주면 된다.
        	arr[i] = Integer.parseInt( br.readLine() );
        }
        
        int max = 0;
        int index = 0;
        int count = 0;
        
        for( int value : arr ) {
        	count++;
            
            if( value > max ) {
            	max = value;
                index = count;
            }
        }
        
        System.out.println( max );
        System.out.println( index );
    }
}

 

 

 

문제 해결

 

1) Scanner 사용

 

정수 9개를 담을 배열을 선언한다. ( 선언과 함꼐 입력으로 초기화 하였다. )

        int[] arr = { sc.nextInt(), sc.nextInt(), sc.nextInt(),
        		sc.nextInt(), sc.nextInt(), sc.nextInt(),
                	sc.nextInt(), sc.nextInt(), sc.nextInt() };

 

count( 몇 번째 돌렸는지 ) , max( 최대값 ) , index( 몇 번째 수 ) 각각 변수 선언

int count = 0;
int max = 0;
int index = 0;

 

배열의 원소를 하나씩 value에 저장하고, 마지막 value 와 value값을 비교하여 value가 마지막 value보다

크면 count값과 value값을 각각 저장한다.

그리고 max와 한줄띄기( "\n" )를 하고 index를 출력한다.

        for( int value : arr ) {
        
        	count++;
            
            if( value > max ) {
            	max = value;
                index = count;
            }
        }
        
        System.out.print( max + "\n" + index );

 

 

2) BufferedReader  사용

 

나머지 알고리즘은 같고 문자를 반드시  Integer.parseInt( ) 를 통해서 int형으로 형변환해준다.

 	// BufferedReader 기본반환값이 문자이므로 형변화만 주의해주면 된다.
        	arr[i] = Integer.parseInt( br.readLine() );
        }

 

 

반응형
Comments