๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
  • ์žฅ์›์ต ๊ธฐ์ˆ ๋ธ”๋กœ๊ทธ
๐Ÿ’ป Computer Science/- Data Structure, Algorithm

[์•Œ๊ณ ๋ฆฌ์ฆ˜ PS] ๋ฐฑ์ค€ 1434๋ฒˆ ์ฑ… ์ •๋ฆฌ ์ž๋ฐ” ๋ฌธ์ œํ’€์ด

by Wonit 2021. 2. 28.

๋ฌธ์ œ

ํ•ด๋‹น ํฌ์ŠคํŒ…์€ ๋ฐฑ์ค€์˜ 1434๋ฒˆ ์ฑ… ์ •๋ฆฌ ์˜ ์ ‘๊ทผ๊ณผ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•œ ๊ธ€ ์ž…๋‹ˆ๋‹ค.
์ •๋‹ต ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ํ™•์ธํ•˜์‹œ๋ ค๋ฉด solve url ์—์„œ ํ™•์ธ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

 

1434๋ฒˆ: ์ฑ… ์ •๋ฆฌ

์ฒซ์งธ ์ค„์— ๋ฐ•์Šค์˜ ๊ฐœ์ˆ˜ N, ์ฑ…์˜ ๊ฐœ์ˆ˜ M์ด ์ฃผ์–ด์ง„๋‹ค. ๋‘˜์งธ ์ค„์—๋Š” ๋ฐ•์Šค์˜ ์šฉ๋Ÿ‰ A1, A2, ..., AN์ด ์ฃผ์–ด์ง€๊ณ , ์…‹์งธ ์ค„์—๋Š” B1, B2, ..., BM์ด ์ฃผ์–ด์ง„๋‹ค.

www.acmicpc.net

์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์–ด๋–ค ๋ฐฉ์‹์œผ๋กœ ์ ‘๊ทผํ•ด์•ผ ํ•˜๋Š”์ง€๋ฅผ ๋จผ์ € ์ƒ๊ฐํ•ด๋ณด์ž.

๋ฌธ์ œ ์ ‘๊ทผ

์ด ๋ฌธ์ œ๋Š” ๊ทธ๋ฆฌ๋”” ๋ฌธ์ œ๋กœ 2๊ฐ€์ง€ ๋ฐฉ์‹์œผ๋กœ ํ’€ ์ˆ˜ ์žˆ๋‹ค.

  1. ์‹œ๊ฐ„ ๋ณต์žก๋„ n ์œผ๋กœ ํ’€๊ธฐ
  2. ์‹œ๊ฐ„ ๋ณต์žก๋„ 1 ๋กœ ํ’€๊ธฐ

์šฐ์„  ์‹œ๊ฐ„ ๋ณต์žก๋„ n์œผ๋กœ ํ‘ธ๋Š” ๋ฐฉ๋ฒ•์„ ๋ด๋ณด์ž.

์‹œ๊ฐ„ ๋ณต์žก๋„ N

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        String[] nm = br.readLine().split(" ");
        String[] boxesStr = br.readLine().split(" ");
        String[] booksStr = br.readLine().split(" ");
        int n = Integer.parseInt(nm[0]);
        int m = Integer.parseInt(nm[1]);

        int[] boxes = new int[n];
        int[] books = new int[m];

        for (int i = 0; i < n; i++) {
            boxes[i] = Integer.parseInt(boxesStr[i]);
        }

        for (int i = 0; i < m; i++) {
            books[i] = Integer.parseInt(booksStr[i]);
        }

        int answer = 0;
        int i = 0, j = 0;
        while(true) {
            if(j == books.length) break;
            int value = boxes[i] - books[j];
            if(value >= 0) { // ๋ฐ•์Šค๊ฐ€ ์ถฉ๋ถ„ํ•˜๋ฉด
                boxes[i] = value;
                j++;
            }else { // ๋ฐ•์Šค๊ฐ€ ๋ชจ์ž๋ผ๋ฉด
                i++;
            }
        }

        for(int value : boxes) {
            answer += value;
        }
        bw.write(String.valueOf(answer));
        bw.flush();
        bw.close();
    }
}

์ด๋ ‡๊ฒŒ ํ•˜๋‚˜์˜ ์ฑ…์ด ์ฑ„์›Œ์ง€๊ณ  ๋ฐ•์Šค์™€ ๋น„๊ต๋ฅผ ํ•œ ๋’ค, ๋ฐ•์Šค๊ฐ€ ๋” ํฌ๋ฉด ์ฑ…์„ ๋‹ด๊ณ  ๋” ์ž‘์œผ๋ฉด ๋‹ค์Œ ๋ฐ•์Šค๋กœ ์ด๋™ํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์ตœ์ข…์ ์œผ๋กœ ๋ฐ•์Šค์— ๋‚จ์€ ์šฉ๋Ÿ‰์„ ํ•ฉ์‚ฐํ•ด์ฃผ๋ฉด ๋œ๋‹ค.

์‹œ๊ฐ„ ๋ณต์žก๋„ 1

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

        // ์ž…๋ ฅ ๊ณผ์ • ์ƒ๋žต

        int bookSum = 0;
        int boxSum = 0;

        for(int value : boxes) boxSum += value;
        for(int value : books) bookSum += value;
        bw.write(String.valueOf(boxSum - bookSum));
        bw.flush();
        bw.close();
    }
}

ํ˜น์€ ์ด์™€ ๊ฐ™์ด ๋ชจ๋“  ๋ฐ•์Šค์˜ ์šฉ๋Ÿ‰์—์„œ ์ฑ…์˜ ์šฉ๋Ÿ‰์„ ๋นผ๋„ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.

๊ทธ ์ด์œ ๋Š” ์กฐ๊ฑด์—์„œ ๋ณด๋ฉด

๋ฌธ์ œ์— ์ฃผ์–ด์ง„ ๋ฐฉ๋ฒ•์œผ๋กœ ๋ชจ๋“  ์ฑ…์„ ๋ฐ•์Šค์— ๋„ฃ์„ ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ๋งŒ ์ž…๋ ฅ์œผ๋กœ ์ฃผ์–ด์ง„๋‹ค.

๋ผ๊ณ  ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด์™€ ๊ฐ™์ด ํ’€ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด๋‹ค.


์ •๋‹ต ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ํ™•์ธํ•˜์‹œ๋ ค๋ฉด solve url ์—์„œ ํ™•์ธ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

๋Œ“๊ธ€