본문 바로가기

Projects/백준 문제

백준 10818번 자바 문제 최소 최대값

반응형

어느 정도 중괄호 위치에 대한 이해가 잡혔다.

 

왜 어떤 변수는 위에서 잡아둬야 하고,

왜 어떤 변수는 for문에서 해야 하는가.

 

피라미드처럼 레이어 단위로 이해하면 이해하기가 쉽게 된다.

 

아래부터 패키지, 클라스, 메인함수, 이후 반복문 조건문 등으로 높은 레이어로 갔다가,

이후 다시 출력을 해야 할 때, 프로그램을 종료할 때는 낮은 레이어로 돌아간다. 

 

문제에서 말하듯이 입력 줄이 두 줄이라면 우선 스캐너가 두 번 들어가야 하는데 이 위치를 알고 구현해야 한다.

 

최우선 조건이 되는 N의 경우는 코드의 맨 처음에 받을 수 있어야 하는 것이 당연하고,

 

이후 두 번째 줄에서 N이라는 조건만큼 하려면, N만큼 반복되는 반복문이 실현되어야 한다.

 

그러면 자연스레 반복문 안에 두 번째 스캐너가 들어가게 되고,

입력된 것은 자연스레 리스트 안에 들어가 저장되어야 한다.

 

하지만 반복문 안에서만 저장되면 일을 마치고나면 리스트가 사라지기 때문에,

더 하위에 먼저 리스트 생성을 시켜두고, 그 레이어에서 최종 최대값과 최소값을 출력한다.

 

import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		int N = sc.nextInt();
		ArrayList<Integer> nums = new ArrayList<Integer>();
		
		for (int i = 0;i<N;i++) {
			int num = sc.nextInt();
			nums.add(num);
		}
		Integer max = Collections.max(nums);
		Integer min = Collections.min(nums);
		System.out.println(min + " " + max);
	}

}
반응형