holllra
10
2021-01-14 00:59:18
4
163

백준 10818번 질문


10818 배열문제입니다.

자바 이제 2주 된 코린이입니다.

이클립스에서 실행했을때는 결과에 문제가 없는데 백준에서 제출하면 틀렸다고 나옵니다.

진짜 머리를 싸매고 고민 중인데 도대체 뭐가 잘못됐는지 모르겠어서 질문합니다.

아래는 제 코드입니다.


import java.util.Scanner;

public class Main{

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt(); //배열 길이 정하는 정수값.
		int[] ary = new int[n];
		
		int max = -1000001; 
		int min = 1000000;
		
		for(int i = 0; i < n; i++) {
			ary[i] = sc.nextInt(); 
			if(ary[i]>max) { 
				max = ary[i]; 
			} else if(ary[i]<min) { 
				min = ary[i]; 
			}
		}
		
		System.out.print(min+" "+max);
	}//main
}


0
  • 답변 4

  • NMEA0183
    50
    2021-01-14 02:37:20

    n이 1인 경우 출력이 정상적인가요?

  • 시뻥
    94
    2021-01-14 09:26:00

    해당 알고리즘은 최악의 경우 시간복잡도가 N^2 이기 때문에 타임아웃 나는것 같네요


    BufferedReader 나 Arrays.sort()  를 사용해서 풀어보세요~ 

  • jason not json
    106
    2021-01-14 13:03:59


    import java.util.Scanner;
    
    public class Main{
    
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		
    		Scanner sc = new Scanner(System.in);
    		int n = sc.nextInt(); //배열 길이 정하는 정수값.
            if(n<1){return;}
    		int[] ary = new int[n];
    		for(int i = 0; i < n; i++) {
    			ary[i] = sc.nextInt();
    		}
    		int max = ary[0]; 
    		int min = ary[0];
    		
    		for(int i = 0; i < n; i++) {
    			if(ary[i]>max) { 
    				max = ary[i]; 
    			} else if(ary[i]<min) { 
    				min = ary[i]; 
    			}
    		}
    		
    		System.out.print(min+" "+max);
    	}//main
    }



  • holllra
    10
    2021-01-14 15:06:02 작성 2021-01-14 15:25:37 수정됨
  • 로그인을 하시면 답변 을 등록할 수 있습니다.