๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿš€ Algorithm/BOJ

[๋ฐฑ์ค€] 2828 ์‚ฌ๊ณผ ๋‹ด๊ธฐ ๊ฒŒ์ž„(JAVA)

2828๋ฒˆ: ์‚ฌ๊ณผ ๋‹ด๊ธฐ ๊ฒŒ์ž„

๋ฌธ์ œ


์ƒ๊ทผ์ด๋Š” ์˜ค๋ฝ์‹ค์—์„œ ๋ฐ”๊ตฌ๋‹ˆ๋ฅผ ์˜ฎ๊ธฐ๋Š” ์˜ค๋ž˜๋œ ๊ฒŒ์ž„์„ ํ•œ๋‹ค. ์Šคํฌ๋ฆฐ์€ N์นธ์œผ๋กœ ๋‚˜๋ˆ„์–ด์ ธ ์žˆ๋‹ค. ์Šคํฌ๋ฆฐ์˜ ์•„๋ž˜์ชฝ์—๋Š” M์นธ์„ ์ฐจ์ง€ํ•˜๋Š” ๋ฐ”๊ตฌ๋‹ˆ๊ฐ€ ์žˆ๋‹ค. (M<N) ํ”Œ๋ ˆ์ด์–ด๋Š” ๊ฒŒ์ž„์„ ํ•˜๋Š” ์ค‘์— ๋ฐ”๊ตฌ๋‹ˆ๋ฅผ ์™ผ์ชฝ์ด๋‚˜ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์ด๋™ํ•  ์ˆ˜ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ, ๋ฐ”๊ตฌ๋‹ˆ๋Š” ์Šคํฌ๋ฆฐ์˜ ๊ฒฝ๊ณ„๋ฅผ ๋„˜์–ด๊ฐ€๋ฉด ์•ˆ ๋œ๋‹ค. ๊ฐ€์žฅ ์ฒ˜์Œ์— ๋ฐ”๊ตฌ๋‹ˆ๋Š” ์™ผ์ชฝ M์นธ์„ ์ฐจ์ง€ํ•˜๊ณ  ์žˆ๋‹ค.

์Šคํฌ๋ฆฐ์˜ ์œ„์—์„œ ์‚ฌ๊ณผ ์—ฌ๋Ÿฌ ๊ฐœ๊ฐ€ ๋–จ์–ด์ง„๋‹ค. ๊ฐ ์‚ฌ๊ณผ๋Š” N์นธ์ค‘ ํ•œ ์นธ์˜ ์ƒ๋‹จ์—์„œ ๋–จ์–ด์ง€๊ธฐ ์‹œ์ž‘ํ•˜๋ฉฐ, ์Šคํฌ๋ฆฐ์˜ ๋ฐ”๋‹ฅ์— ๋‹ฟ์„๋•Œ๊นŒ์ง€ ์ง์„ ์œผ๋กœ ๋–จ์–ด์ง„๋‹ค. ํ•œ ์‚ฌ๊ณผ๊ฐ€ ๋ฐ”๋‹ฅ์— ๋‹ฟ๋Š” ์ฆ‰์‹œ, ๋‹ค๋ฅธ ์‚ฌ๊ณผ๊ฐ€ ๋–จ์–ด์ง€๊ธฐ ์‹œ์ž‘ํ•œ๋‹ค.

๋ฐ”๊ตฌ๋‹ˆ๊ฐ€ ์‚ฌ๊ณผ๊ฐ€ ๋–จ์–ด์ง€๋Š” ์นธ์„ ์ฐจ์ง€ํ•˜๊ณ  ์žˆ๋‹ค๋ฉด, ๋ฐ”๊ตฌ๋‹ˆ๋Š” ๊ทธ ์‚ฌ๊ณผ๊ฐ€ ๋ฐ”๋‹ฅ์— ๋‹ฟ์„ ๋•Œ, ์‚ฌ๊ณผ๋ฅผ ๋‹ด์„ ์ˆ˜ ์žˆ๋‹ค. ์ƒ๊ทผ์ด๋Š” ์‚ฌ๊ณผ๋ฅผ ๋ชจ๋‘ ๋‹ด์œผ๋ ค๊ณ  ํ•œ๋‹ค. ์ด๋•Œ, ๋ฐ”๊ตฌ๋‹ˆ์˜ ์ด๋™ ๊ฑฐ๋ฆฌ์˜ ์ตœ์†Ÿ๊ฐ’์„ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

 

 

 

์ž…๋ ฅ

์ฒซ์งธ ์ค„์— N๊ณผ M์ด ์ฃผ์–ด์ง„๋‹ค. (1 ≤ M < N ≤ 10) ๋‘˜์งธ ์ค„์— ๋–จ์–ด์ง€๋Š” ์‚ฌ๊ณผ์˜ ๊ฐœ์ˆ˜ J๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. (1 ≤ J ≤ 20) ๋‹ค์Œ J๊ฐœ ์ค„์—๋Š” ์‚ฌ๊ณผ๊ฐ€ ๋–จ์–ด์ง€๋Š” ์œ„์น˜๊ฐ€ ์ˆœ์„œ๋Œ€๋กœ ์ฃผ์–ด์ง„๋‹ค.

N : ์Šคํฌ๋ฆฐ ์นธ M : ๋ฐ”๊ตฌ๋‹ˆ๊ฐ€ ์œ„์น˜ํ•œ ์นธ (์‹œ์ž‘ ์นธ) J : ์‚ฌ๊ณผ์˜ ๊ฐฏ์ˆ˜

 

์ถœ๋ ฅ

๋ชจ๋“  ์‚ฌ๊ณผ๋ฅผ ๋‹ด๊ธฐ ์œ„ํ•ด์„œ ๋ฐ”๊ตฌ๋‹ˆ๊ฐ€ ์ด๋™ํ•ด์•ผ ํ•˜๋Š” ๊ฑฐ๋ฆฌ์˜ ์ตœ์†Ÿ๊ฐ’์„ ์ถœ๋ ฅํ•œ๋‹ค.

 

์˜ˆ์ œ ์ž…๋ ฅ

5 1
3
1
5
3

์˜ˆ์ œ ์ถœ๋ ฅ

6

 

 

์š”๊ตฌ ์‚ฌํ•ญ ๋ถ„์„


์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋ ค๋ฉด ์‚ฌ๊ณผ๊ฐ€ ๋–จ์–ด์ง€๋Š” ๊ฒƒ์„ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ํ•˜๊ณ  ๊ทธ์— ๋”ฐ๋ผ ๋ฐ”๊ตฌ๋‹ˆ๋ฅผ ์›€์ง์—ฌ ์‚ฌ๊ณผ๋ฅผ ๋ฐ›์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋ฐ”๊ตฌ๋‹ˆ์˜ ํ˜„์žฌ ์œ„์น˜๋ฅผ ์ถ”์ ํ•˜๊ณ  ๊ฐ ์‚ฌ๊ณผ๋ฅผ ์žก๊ธฐ ์œ„ํ•ด ์ด๋™ํ•ด์•ผ ํ•˜๋Š” ๊ฑฐ๋ฆฌ๋ฅผ ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ์ด ๊ฑฐ๋ฆฌ๋ฅผ ํ•ฉ์‚ฐํ•˜์—ฌ ๋ชจ๋“  ์‚ฌ๊ณผ๋ฅผ ์žก๊ธฐ ์œ„ํ•ด ๋ฐ”๊ตฌ๋‹ˆ๊ฐ€ ์ด๋™ํ•ด์•ผ ํ•˜๋Š” ์ด ๊ฑฐ๋ฆฌ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

์ ‘๊ทผ ๋ฐฉ๋ฒ•

  1. N, M, J์˜ ์ž…๋ ฅ๊ฐ’์„ ์ฝ๋Š”๋‹ค.
  2. ๋ฐ”๊ตฌ๋‹ˆ์˜ ํ˜„์žฌ ์œ„์น˜๋ฅผ M์œผ๋กœ ์ดˆ๊ธฐํ™”ํ•œ๋‹ค.
  3. ๊ฐ ์‚ฌ๊ณผ์˜ ์œ„์น˜๋ฅผ ์ฝ๊ณ  ๋•…์— ๋–จ์–ด์ง€๊ธฐ ์ „์— ๋–จ์–ด์ง€๋Š” ๊ฑฐ๋ฆฌ๋ฅผ ๊ณ„์‚ฐํ•œ๋‹ค.
  4. ๋ฐ”๊ตฌ๋‹ˆ๊ฐ€ ๋–จ์–ด์ง€๋Š” ์‚ฌ๊ณผ์˜ ๊ฒฝ๋กœ์— ์žˆ๋Š” ๊ฒฝ์šฐ ๋ฐ”๊ตฌ๋‹ˆ๊ฐ€ ์‚ฌ๊ณผ๋ฅผ ์žก๊ธฐ ์œ„ํ•ด ์ด๋™ํ•ด์•ผ ํ•˜๋Š” ๊ฑฐ๋ฆฌ๋ฅผ ๊ณ„์‚ฐํ•œ๋‹ค.
  5. ๋ฐ”๊ตฌ๋‹ˆ์˜ ํ˜„์žฌ ์œ„์น˜๋ฅผ ์‚ฌ๊ณผ๊ฐ€ ๋•…์— ๋‹ฟ๋Š” ์œ„์น˜๋กœ ์—…๋ฐ์ดํŠธ ํ•œ๋‹ค.
  6. ๋ชจ๋“  ์‚ฌ๊ณผ๊ฐ€ ์žกํž ๋•Œ๊นŒ์ง€ 3-5๋‹จ๊ณ„๋ฅผ ๋ฐ˜๋ณตํ•œ๋‹ค.
  7. ๋ชจ๋“  ์‚ฌ๊ณผ๋ฅผ ์žก๊ธฐ ์œ„ํ•ด ๋ฐ”๊ตฌ๋‹ˆ๊ฐ€ ์ด๋™ํ•œ ์ด ๊ฑฐ๋ฆฌ๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

๋ฐฐ์—ด์— ์‚ฌ๊ณผ ์œ„์น˜๋ฅผ ์ €์žฅํ•˜์—ฌ ๋ฌธ์ œ์— ์ ‘๊ทผ ๋ฐ”๊ตฌ๋‹ˆ์˜ ๊ฐ€๋Šฅํ•œ ๊ฐ ์‹œ์ž‘ ์œ„์น˜๋ฅผ ๋ฐ˜๋ณตํ•˜๊ณ , ๊ฐ ์‹œ์ž‘ ์œ„์น˜์— ๋Œ€ํ•ด ๋ชจ๋“  ์‚ฌ๊ณผ๋ฅผ ์žก๋Š” ๋ฐ ํ•„์š”ํ•œ ์ตœ์†Œ ๊ฑฐ๋ฆฌ๋ฅผ ๊ณ„์‚ฐํ•œ๋‹ค.

 

ํ’€์ด

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

public class boj2828 {

    public static void main(String[] args) throws IOException {

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        // ์ฒซ ๋ฒˆ์งธ ์ค„์—์„œ N๊ณผ M์„ ์ž…๋ ฅ๋ฐ›์Œ
        StringTokenizer st = new StringTokenizer(br.readLine());
        int N = Integer.parseInt(st.nextToken());
        int M = Integer.parseInt(st.nextToken());

        // ๋‘ ๋ฒˆ์งธ ์ค„์—์„œ J๋ฅผ ์ž…๋ ฅ๋ฐ›์Œ
        int J = Integer.parseInt(br.readLine());

        int left = 1; // ๋ฐ”๊ตฌ๋‹ˆ์˜ ์™ผ์ชฝ ๋ ์œ„์น˜
        int right = M; // ๋ฐ”๊ตฌ๋‹ˆ์˜ ์˜ค๋ฅธ์ชฝ ๋ ์œ„์น˜
        int cnt = 0; // ์ด๋™ ํšŸ์ˆ˜

        for (int i = 0; i < J; i++) {
            int apple = Integer.parseInt(br.readLine());

            // ๋ฐ”๊ตฌ๋‹ˆ๋ฅผ ์™ผ์ชฝ์œผ๋กœ ์ด๋™ํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ
            if (apple < left) {
                cnt += left - apple; // ์ด๋™ ๊ฑฐ๋ฆฌ๋ฅผ ๋”ํ•จ
                left = apple; // ๋ฐ”๊ตฌ๋‹ˆ ์œ„์น˜ ์—…๋ฐ์ดํŠธ
                right = left + M - 1; // ๋ฐ”๊ตฌ๋‹ˆ ๋ฒ”์œ„ ์—…๋ฐ์ดํŠธ
            }
            // ๋ฐ”๊ตฌ๋‹ˆ๋ฅผ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์ด๋™ํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ
            else if (apple > right) {
                cnt += apple - right; // ์ด๋™ ๊ฑฐ๋ฆฌ๋ฅผ ๋”ํ•จ
                right = apple; // ๋ฐ”๊ตฌ๋‹ˆ ์œ„์น˜ ์—…๋ฐ์ดํŠธ
                left = right - M + 1; // ๋ฐ”๊ตฌ๋‹ˆ ๋ฒ”์œ„ ์—…๋ฐ์ดํŠธ
            }
        }

        System.out.println(cnt);
    }
}

'๐Ÿš€ Algorithm > BOJ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[๋ฐฑ์ค€] ์š”์„ธํ‘ธ์Šค ๋ฌธ์ œ 0 (JAVA)  (0) 2023.04.11
[๋ฐฑ์ค€] 2178 ๋ฏธ๋กœ ํƒ์ƒ‰(JAVA)  (0) 2023.03.27
[๋ฐฑ์ค€] 1926 ๊ทธ๋ฆผ(JAVA)  (0) 2023.03.21
8958  (0) 2021.08.18
1110  (0) 2021.08.16