[Java] 백준 문제 풀이 - 10818번

이진석·2022년 10월 21일
0

백준 문제 풀이!!

목록 보기
2/13
post-thumbnail

20221021

문제

https://www.acmicpc.net/status?user_id=james137957&problem_id=10818&from_mine=1


풀이 1차 시도

import java.util.*;

public class Main {
	public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        
        int max = -99999, min = 99999;
        int num = sc.nextInt();
        int arr[] = new int[num];

		for (int i = 0; i < arr.length; i++) {
			arr[i] = sc.nextInt();
		}
        
		for (int i = 0; i < arr.length; i++) {
			if (arr[i] >= max) {
				max = arr[i];
			}
			if (arr[i] <= min) {
				min = arr[i];
			}
		}
		System.out.println(min + " " + max);
	}
}

풀이 2차 시도

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

public class Main {
	public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        
        int num = sc.nextInt();
        int arr[] = new int[num];
        
        // 배열의 길이만큼 돌면서 i에 입력값을 받는다
        for (int i=0; i<arr.length; i++) {
        	arr[i] = sc.nextInt();
        }
        
        // sort를 사용해 배열을 정렬한다
        Arrays.sort(arr);
        // 정렬된 배열의 가장 작은 수
        // 0번 인덱스의 것 = min 값
        // 배열길이 -1 인덱스의 것 = max 값
        System.out.println(arr[0] + " " + arr[num - 1]);
	}
}

  • 위의 풀이로 사실 왜 풀리지 않는지 의문이었다.
  • 스스로 생각하기에는 max값보다 클 경우와 min보다 작을 경우라는 값에서 오류가 발생한듯 한데, 아직도 완벽하게 해결되지는 않았다.
  • 밑의 풀이도 해결은 되었지만, 런타임 시간이 너무 길게 나와서 다른 풀이를 알아봐야 할 듯 하다ㅠㅠ
profile
혼자서 코딩 공부하는 전공생 초보 백엔드 개발자 / https://github.com/leejinseok0614

0개의 댓글