https://www.acmicpc.net/problem/10818
난이도 : 브론즈 3
태그 : 수학, 구현
설명
N개의 정수가 주어지고, 최소값과 최대값을 구하는 문제입니다.
첫 번째 값을 각각 최소값, 최대값으로 초기화하고,
최소값보다 더 작은 값이 나타날 때마다 최소값을 갱신하고,
최대값보다 더 큰 값이 나타날 때마다 최대값을 갱신합니다.
소스코드
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];
int min, max;
for(int i = 0; i<num; i++)
{
arr[i] = sc.nextInt();
}
min = arr[0];
max = arr[0];
for(int i = 0; i<num; i++)
{
if(arr[i] < min)
min = arr[i];
if(arr[i] > max)
max = arr[i];
}
System.out.println(min+" "+max);
}
}
후기
예전 문제들을 포스팅하고 있는데,
자바로 푼 코드가 보이길래 봤더니 2년 전 자바를 배울 때 푼 문제더군요.
굳이 배열에 저장하고 최대/최소값을 갱신할 필요 없이,
입력받을때 마다 최대/최소값을 갱신하면 됩니다.
'코딩테스트 > Java' 카테고리의 다른 글
[백준 10989번] [Java] 수 정렬하기 3 (0) | 2023.02.01 |
---|---|
[백준 2750번] [Java] 수 정렬하기 (0) | 2023.02.01 |
[백준 10172번] [Java] 개 (0) | 2022.12.12 |
[백준 2742번] [Java] 기찍 N (0) | 2022.12.12 |
[백준 2741번] [Java] N 찍기 (0) | 2022.12.12 |