๐ŸŒžAlgorithm/๐Ÿ”ฅBaekjoon

[Baekjoon] 3135_๋ผ๋””์˜ค

๋ฟŒ์•ผ._. 2023. 11. 15. 09:50

Silver V

๋ฌธ์ œ(์ถœ์ฒ˜: https://www.acmicpc.net/problem/3135)

< ๋ผ๋””์˜ค >

 

๋ฌธ์ œ ํ’€์ด 

 

ํ˜„์žฌ ์ฃผํŒŒ์ˆ˜์—์„œ ๋“ฃ๊ณ  ์‹ถ์€ ์ฃผํŒŒ์ˆ˜๋กœ ๊ฐ€๊ธฐ ์œ„ํ•ด ๋ฏธ๋ฆฌ ์ง€์ •๋˜์–ด ์žˆ๋Š” ์ฃผํŒŒ์ˆ˜๋กœ ์ด๋™ํ•˜๋Š” ๊ฒƒ์ด ๋ฒ„ํŠผ์„ ์ ๊ฒŒ ๋ˆ„๋ฅด๋Š”์ง€ ํŒ๋‹จ ํ›„ ์ ๊ฒŒ ๋ˆ„๋ฅด๋ฉด ์ด๋™ํ•˜๊ณ  ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์ด๋™ํ•˜์ง€ ์•Š๋Š”๋‹ค.

 

 

 my solution (Java)

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

public class _3135_ { // ๋ผ๋””์˜ค

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

		int a = Integer.parseInt(st.nextToken());
		int b = Integer.parseInt(st.nextToken());

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

		int min= Math.abs(b-a);
		int value=a;
		int result=0;

		for(int i=0; i<n; i++) {
			int num=Integer.parseInt(bf.readLine());
			if(min > Math.abs(b-num)) {
				min=Math.abs(b-num);
				value=num;
			}
		}

		if(value!=a) {
			result+=1;
		}
		result+= min;
		System.out.println(result);
	}
}

 

Main

๋ณ€์ˆ˜)
a, b, n : ํ˜„์žฌ ์ฃผํŒŒ์ˆ˜, ๋“ฃ๊ณ  ์‹ถ์€ ์ฃผํŒŒ์ˆ˜, ๋ฏธ๋ฆฌ ์ง€์ •๋˜์–ด ์žˆ๋Š” ์ฃผํŒŒ์ˆ˜ ๊ฐœ์ˆ˜
min, value : ๋“ฃ๊ณ  ์‹ถ์€ ์ฃผํŒŒ์ˆ˜์™€์˜ ์ž‘์€ ์ฐจ, ๋“ฃ๊ณ  ์‹ถ์€ ์ฃผํŒŒ์ˆ˜์™€์˜ ์ž‘์€ ์ฐจ ๊ฐ’
result : ๋ˆŒ๋Ÿฌ์•ผ ํ•˜๋Š” ๋ฒ„ํŠผ์ˆ˜์˜ ์ตœ์†Ÿ๊ฐ’

 

ํ˜„์žฌ ์ฃผํŒŒ์ˆ˜์™€ ๋“ฃ๊ณ  ์‹ถ์€ ์ฃผํŒŒ์ˆ˜์˜ ์ฐจ์ด๋ฅผ ๊ตฌํ•œ ํ›„ ๋ฏธ๋ฆฌ ์ง€์ •๋˜์–ด ์žˆ๋Š” ์ฃผํŒŒ์ˆ˜์™€ ๋“ฃ๊ณ  ์‹ถ์€ ์ฃผํŒŒ์ˆ˜์˜ ์ฐจ์ด๋ฅผ ๊ตฌํ•˜๋ฉฐ ์ตœ์†Ÿ๊ฐ’์„ ์ฐพ๋Š”๋‹ค. ์ฐจ์ด๊ฐ€ ๊ฐ€์žฅ ์ตœ์†Ÿ๊ฐ’์ธ ์ฃผํŒŒ์ˆ˜๋กœ ์ด๋™ ํ›„ ๊ทธ ์ฃผํŒŒ์ˆ˜์™€ ๋“ฃ๊ณ  ์‹ถ์€ ์ฃผํŒŒ์ˆ˜์™€์˜ ์ฐจ์ด๋ฅผ ๋”ํ•ด์ฃผ๋ฉด ๋ฒ„ํŠผ์ˆ˜์˜ ์ตœ์†Ÿ๊ฐ’์„ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค.