Uknow's Lab.
article thumbnail

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

 

10818번: 최소, 최대

첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다.

www.acmicpc.net

 

난이도 : 브론즈 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년 전 자바를 배울 때 푼 문제더군요.

 

굳이 배열에 저장하고 최대/최소값을 갱신할 필요 없이,

입력받을때 마다 최대/최소값을 갱신하면 됩니다.

profile

Uknow's Lab.

@유노 Uknow

인생은 Byte와 Double 사이 Char다. 아무말이나 해봤습니다.