[BOJ]1092 ๋ฐฐ

โœ”๏ธ ๋ฌธ์ œ ๋งํฌ

https://www.acmicpc.net/problem/1092

๐Ÿ’ก ํ•ต์‹ฌ ์•„์ด๋””์–ด

1๏ธโƒฃ ๋งค ์‹œ๊ฐ„๋งˆ๋‹ค ๊ฐ€์žฅ ๋ฌด๊ฑฐ์šด ๋ฐ•์Šค๋ฅผ ๋“ค ์ˆ˜ ์žˆ๋Š” ํฌ๋ ˆ์ธ ์ˆœ์œผ๋กœ ๊ฐ€์žฅ ๋ฌด๊ฑฐ์šด ๋ฐ•์Šค๋ถ€ํ„ฐ ๋‚˜๋ฅธ๋‹ค.

2๏ธโƒฃ ๋‚˜๋ฅธ ๋ฐ•์Šค๋Š” ๋ฆฌ์ŠคํŠธ์— ์ œ๊ฑฐํ•˜๋ฉฐ ์‹œ๊ฐ„ ์ ˆ์•ฝ์„ ์œ„ํ•ด ํฌ๋ ˆ์ธ ๋ฐฐ์—ด๊ณผ ๋ฐ•์Šค ๋ฐฐ์—ด์„ ๋‚ด๋ฆผ์ฐจ์ˆœ ์ •๋ ฌํ›„ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ˆœํšŒํ•˜๋ฉฐ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.

โญ๏ธ ์†Œ์Šค ์ฝ”๋“œ

if __name__ == '__main__':
    N = int(input())
    crane_list = map(int, input().split())

    M = int(input())
    box_list = map(int, input().split())

    crane_list = sorted(crane_list, key = lambda x : -x)
    box_list = sorted(box_list, key = lambda x : -x)

    ans = 0
    flag = False

    while(True):
        if len(box_list) == 0:
            break

        if crane_list[0] < box_list[0]:
            ans = -1
            break
        flag = False
        for crane in crane_list:
            temp = 0

            if len(box_list) == 0:
                ans += 1
                flag = True
                break

            for box in box_list:
                if crane >= box:
                    temp = box
                    break
            # ๋ฐ•์Šค๋ฅผ ์—†์• ์คŒ
            if temp != 0:
                box_list.remove(temp)

        if flag:
            break

        ans += 1

    print(ans)

์ข‹์€ ์›นํŽ˜์ด์ง€ ์ฆ๊ฒจ์ฐพ๊ธฐ