[백준] 10818. 최소, 최대

문제

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

풀이(1)

BufferedReader를 이용해 숫자를 입력 받고, 그 숫자 만큼의 배열을 생성한다.
StringTokenizer를 통해서 입력 받은 숫자들을 배열에 하나씩 넣어준다.
max와 min에는 임의의 값을 지정해 준 다음 for문을 통해서 값을 비교 후에 최소, 최대값을 저장한다.

코드(1)

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main {
	public static void main(String[] args) throws NumberFormatException, IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
		int n = Integer.parseInt(br.readLine());
		int[] arr = new int[n];
		
		StringTokenizer st = new StringTokenizer(br.readLine());
		for(int i = 0; i < n; i++) {
			arr[i] = Integer.parseInt(st.nextToken());
		}
		int max = arr[0];
		int min = arr[0];
		for(int i = 0; i < n; i++) {
			if(arr[i] < min) min = arr[i];
			if(arr[i] > max) max = arr[i];
		}
		System.out.println(min + " " + max);
	}
}

풀이(2)

배열 문제이기 때문에 배열을 생성해서 배열 내의 값을 서로 비교해 최소, 최대값을 구해야 하는 것이 정석이지만 찾아보니 꽤 간단한 방법이 있어서 그 방법으로도 풀이해보도록 한다!
배열을 생성하지 않고 Integer.parseInt(br.readLine())로 숫자 한개를 우선 입력 받고 StringTokenizer를 통해 입력 받은 여러 문자열을 쪼개서 담아둔다.
그리고 문제에서 주어진 n의 조건 보다 큰 값을 min에, 작은 값을 max에 두고 StringTokenizer에 있는 문자열을 반복문으로 돌린다.
📢 st.hasMoreTokens() → st에 남아있는 Token이 있는지 확인하는 것 : true면 아직 남아있는 것이므로 반복문은 계속 돌아가고 false라면 반복문은 종료됨.
val 변수에 token값을 넣어주고 val값이 min값 보다 작다면 min = val.(max는 반대로)
→ 최소값과 최대값이 구해지면 출력한다.

코드(2)

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main {
	public static void main(String[] args) throws NumberFormatException, IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
		Integer.parseInt(br.readLine());
		StringTokenizer st = new StringTokenizer(br.readLine(), " ");
		
		int min = 1000001;
		int max = -1000001;
		
		while(st.hasMoreTokens()) {
			int val = Integer.parseInt(st.nextToken());
			if(val < min) min = val;
			if(val > max) max = val;
		}
		System.out.println(min + " " + max);
	}
}

좋은 웹페이지 즐겨찾기