🌞Algorithm/🔥Baekjoon

[Baekjoon] 16756_Pismo

뿌야._. 2025. 5. 21. 20:21
문제(출처: https://www.acmicpc.net/problem/16756)

< Pismo >

 

문제 풀이 

 

구간에 있는 숫자들의 최댓값과 최솟값의 차이로 최솟값의 구간을 찾기 위해 인접한 값을 이용하여 구한다.

만약 4 3 1 이 주어진다면 4-3=1로 최솟값이지만 구간을 더 늘리면 4-1=3이 되기 때문이다.

 

my solution (Java)

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

public class _16756_ { // Pismo

	public static void main(String[] args) throws IOException {
		BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
		StringTokenizer st;

		int N = Integer.parseInt(bf.readLine());

		st = new StringTokenizer(bf.readLine());

		int arr[] = new int[N];
		for (int i = 0; i < N; i++) {
			arr[i] = Integer.parseInt(st.nextToken());
		}

		int min = Integer.MAX_VALUE;
		for (int i = 0; i < N - 1; i++) {
			int a = Math.max(arr[i], arr[i + 1]);
			int b = Math.min(arr[i], arr[i + 1]);
			min = Math.min(min, a - b);
		}
		System.out.println(min);
	}
}
변수)
N : 배열 크기
arr : 배열
min : 최솟값

 

배열 크기 N과 N만큼 배열 값을 입력받아 arr에 저장한다. 인접한 배열 2개의 값을 활용하여 큰 값 - 작은 값을 구해 최솟값을 구한다. 최종 min값을 출력한다.



 

'🌞Algorithm > 🔥Baekjoon' 카테고리의 다른 글

[Baekjoon] 10689_Hamza  (1) 2025.05.23
[Baekjoon] 4679_The Snail  (1) 2025.05.22
[Baekjoon] 6325_Definite Values  (1) 2025.05.19
[Baekjoon] 21030_Frequent Alphabet  (2) 2025.05.16
[Baekjoon] 10770_Rövarspråket  (1) 2025.05.15