-
728x90
입출력 - 2557, 1000, 2558, 10950, 10951, 10952, 10953, 11021, 11022, 11718, 11719, 11720, 11721, 2741, 2742, 2739, 1924, 8393, 10818, 2438, 2439, 2440, 2441, 2442, 2445, 2522, 2446, 10991, 10992
출처: https://plzrun.tistory.com/entry/알고리즘-문제풀이PS-시작하기 [plzrun's algorithm]문제
N개의 정수가 주어진다. 이때, 최솟값과 최댓값을 구하는 프로그램을 작성하시오.
입력
첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다.
출력
첫째 줄에 주어진 정수 N개의 최솟값과 최댓값을 공백으로 구분해 출력한다.
change Nxxxx -> Main && remove package lines!!!
이클립스에서 작성하면서 문제 이름으로 클래스를 생성하여 풀었기 때문에
클래스 이름을 Main으로 바꾸고, package 부분도 지우고 제출해야 정상적으로 돌아갑니다.
<풀이>
12345678910111213141516171819202122232425262728293031package io;public class N10818 {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();int[] arr = new int[n];int min = Integer.MAX_VALUE;int max = Integer.MIN_VALUE;int temp = 0;for(int i=0; i<n; i++) {arr[i] = sc.nextInt();temp = arr[i];if(temp < min) {min = temp;}if(temp > max) {max = temp;}}System.out.println(min + " " + max);}}12, 13 Line에서 min에 최댓값, max에 최솟값은 일부러 넣어주었다.
그렇지 않으면 뒤에서 temp와 비교하는 과정에서 값이 temp값으로 대체되지 않는다.
이 코드에서 temp라는 변수를 꼭 선언하지 않아도 되지만, 메모리를 더 쓰더라도 가독성이 좋게 쓰고 싶었다.
* 다른 분들 풀이를 보니 버퍼를 사용해서 String으로 받은 뒤 Int로 형변환하는 과정으로 푸시는 분들이 꽤 많았는데
개인적으로 그런 방식이 아직 익숙하지 않아서 반복문을 통한 비교로 풀었다. 다른분들 풀이 보면서 연습해야지..ㅎㅎ
Github: https://github.com/jaeuk9407/AlgorithmBOJ
'Algorithms' 카테고리의 다른 글
[백준 알고리즘] (I/O) 2439번 Java 풀이 (0) 2020.03.06 [백준 알고리즘] (I/O) 2438번 Java 풀이 (0) 2020.03.05 [백준 알고리즘] (I/O) 8393번 Java 풀이 (0) 2020.03.05 [백준 알고리즘] (I/O) 1924번 Java 풀이 (0) 2020.03.05 [백준 알고리즘] (I/O) 2739번 Java 풀이 (0) 2020.03.05 댓글