๐ŸŒžAlgorithm/๐Ÿ”ฅBaekjoon

[Baekjoon] 2828_์‚ฌ๊ณผ ๋‹ด๊ธฐ ๊ฒŒ์ž„

๋ฟŒ์•ผ._. 2023. 9. 18. 20:45

Silver V

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

< ์‚ฌ๊ณผ ๋‹ด๊ธฐ ๊ฒŒ >

 

๋ฌธ์ œ ํ’€์ด 

 

์‚ฌ๊ณผ์˜ ์œ„์น˜์— ๋”ฐ๋ผ ์™ผ์ชฝ์œผ๋กœ ์ด๋™ํ• ์ง€ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์ด๋™ํ• ์ง€ ๋ฐ”๊ตฌ๋‹ˆ๊ฐ€ ์ด๋™ํ•ด์•ผ ํ•˜๋Š” ๊ฑฐ๋ฆฌ๊ฐ€ ์ตœ์†Œ์ธ ๊ฐ’์„ ์ฐพ์•„ ์ด๋™ํ•œ๋‹ค.

 

 

 my solution (Java)

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

public class _2828_ { // ์‚ฌ๊ณผ ๋‹ด๊ธฐ ๊ฒŒ์ž„

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

		int n = Integer.parseInt(st.nextToken());
		int m = Integer.parseInt(st.nextToken());

		int start = 1;
		int end = start + m - 1;

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

		int result = 0;

		for (int i = 0; i < j; i++) {
			int k = Integer.parseInt(bf.readLine());
			if (start <= k && end >= k) {
				continue;
			} else {
				if (Math.abs(k - start) > Math.abs(k - end)) {
					result += Math.abs(k - end);
					start += Math.abs(k - end);
					end += Math.abs(k - end);
				} else if(Math.abs(k - start) < Math.abs(k - end)) {
					result += Math.abs(k - start);
					end -= Math.abs(k - start);
					start -= Math.abs(k - start);
				}else {
					if(k < start) {
						result += Math.abs(k - start);
						end -= Math.abs(k - start);
						start -= Math.abs(k - start);
					}else {
						result += Math.abs(k - end);
						start += Math.abs(k - end);
						end += Math.abs(k - end);
					}
				}
			}
		}
		System.out.println(result);
	}
}

 

Main

๋ณ€์ˆ˜)
n : ์Šคํฌ๋ฆฐ ์นธ
m : ๋ฐ”๊ตฌ๋‹ˆ ์ˆ˜
start , end : ๋ฐ”๊ตฌ๋‹ˆ์˜ ์™ผ์ชฝ ์˜ค๋ฅธ์ชฝ ์ธ๋ฑ์Šค
j : ์‚ฌ๊ณผ์˜ ๊ฐœ์ˆ˜
result : ๋ฐ”๊ตฌ๋‹ˆ๊ฐ€ ์ด๋™ํ•ด์•ผ ํ•˜๋Š” ๊ฑฐ๋ฆฌ์˜ ์ตœ์†Ÿ๊ฐ’
k : ์‚ฌ๊ณผ๊ฐ€ ๋–จ์–ด์ง€๋Š” ์œ„์น˜

 

- ์Šคํฌ๋ฆฐ ์ˆ˜(n), ๋ฐ”๊ตฌ๋‹ˆ ์ˆ˜(m) ์ž…๋ ฅ

- ์‚ฌ๊ณผ์˜ ๊ฐœ์ˆ˜(j) ์ž…๋ ฅ

- ์‚ฌ๊ณผ์˜ ์ˆ˜๋งŒํผ ์‚ฌ๊ณผ๊ฐ€ ๋–จ์–ด์ง€๋Š” ์œ„์น˜(k) ์ž…๋ ฅ

: ๋ฐ”๊ตฌ๋‹ˆ์˜ ์œ„์น˜๊ฐ€ ์‚ฌ๊ณผ๊ฐ€ ๋–จ์–ด์ง€๋Š” ์œ„์น˜๋ผ๋ฉด PASS

: ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์ด๋™ํ•˜๋Š” ๊ฒƒ์ด ์ตœ์†Œ ์ด๋™ ๊ฐ’์ด๋ผ๋ฉด ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์ด๋™

: ์™ผ์ชฝ์œผ๋กœ ์ด๋™ํ•˜๋Š” ๊ฒƒ์ด ์ตœ์†Œ ์ด๋™ ๊ฐ’์ด๋ผ๋ฉด ์™ผ์ชฝ์œผ๋กœ ์ด๋™

: ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์ด๋™ํ•˜๋Š” ๊ฒƒ๊ณผ ์™ผ์ชฝ์œผ๋กœ ์ด๋™ํ•˜๋Š” ๊ฐ’์ด ๊ฐ™์œผ๋ฉด ๋ฐ”๊ตฌ๋‹ˆ์˜ ์ˆ˜๊ฐ€ ํ•˜๋‚˜๋ผ๋Š” ๋œป์ด๋ฏ€๋กœ ์™ผ์ชฝ, ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์ด๋™ํ• ์ง€ ํŒ๋‹จํ•ด์„œ ์ด๋™

- ๋ฐ”๊ตฌ๋‹ˆ๊ฐ€ ์ด๋™ํ•ด์•ผ ํ•˜๋Š” ๊ฑฐ๋ฆฌ์˜ ์ตœ์†Ÿ๊ฐ’(result) ์ถœ๋ ฅ