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

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

by Wonit 2021. 7. 21.

๋ฌธ์ œ

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

 

1092๋ฒˆ: ๋ฐฐ

์ฒซ์งธ ์ค„์— N์ด ์ฃผ์–ด์ง„๋‹ค. N์€ 50๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ž์—ฐ์ˆ˜์ด๋‹ค. ๋‘˜์งธ ์ค„์—๋Š” ๊ฐ ํฌ๋ ˆ์ธ์˜ ๋ฌด๊ฒŒ ์ œํ•œ์ด ์ฃผ์–ด์ง„๋‹ค. ์ด ๊ฐ’์€ 1,000,000๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™๋‹ค. ์…‹์งธ ์ค„์—๋Š” ๋ฐ•์Šค์˜ ์ˆ˜ M์ด ์ฃผ์–ด์ง„๋‹ค. M์€ 10,000๋ณด

www.acmicpc.net

 

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

 

๋ฌธ์ œ ์ ‘๊ทผ

 

์ด ๋ฌธ์ œ๋Š” ๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ด์šฉํ•ด์„œ ํ’€ ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ์ด๋‹ค.

 

ํ•ด๊ฒฐ๋ฒ•

 

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

 

์ด๋ฒˆ ๋ฌธ์ œ๊ฐ™์€ ๊ฒฝ์šฐ๋Š” ๋ฐ•์Šค์˜ ๋ฌด๊ฒŒ์™€ ํฌ๋ ˆ์ธ์˜ ๋‚ด๋ฆผ์ฐจ์ˆœ ์ •๋ ฌ์„ ํ•ด์•ผ์ง€ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค.

 

์ •๋‹ต ์ฝ”๋“œ

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));

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

        ArrayList<Integer> cranes = new ArrayList<>();
        ArrayList<Integer> boxes = new ArrayList<>();

        String[] craneString = br.readLine().split(" ");

        for(String crane : craneString) {
            cranes.add(Integer.parseInt(crane));
        }

        int m = Integer.parseInt(br.readLine());

        String[] boxString = br.readLine().split(" ");

        for(String box : boxString) {
            boxes.add(Integer.parseInt(box));
        }

        Collections.sort(cranes, Collections.reverseOrder());
        Collections.sort(boxes, Collections.reverseOrder());

        if(cranes.get(0) < boxes.get(0)) {
            bw.write(String.valueOf(-1));
            bw.flush();
            bw.close();
            return ;
        }

        int count = 0;

        while(!boxes.isEmpty()) {

            int index = 0;

            for (int i = 0; i < cranes.size();) {
                if(index == boxes.size()) break;
                if (cranes.get(i) >= boxes.get(index)) {
                    boxes.remove(index);
                    i++;
                }else {
                    index++;
                }
            }
            count++;
        }

        bw.write(String.valueOf(count));

        bw.flush();
        bw.close();
    }
}

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

๋Œ“๊ธ€