ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [๋ฐฑ์ค€] 12018 Yonsei TOTO with Python
    PS 2022. 3. 9. 23:28
    728x90
    ๋ฐ˜์‘ํ˜•

    ๐Ÿ“Œ BOJ 12018 Yonsei TOTO

    ๐Ÿ’ก ์กฐ๊ฑด

    1. ๊ฐ๊ฐ์˜ ํ•™์ƒ๋“ค์—๊ฒŒ ๋งˆ์ผ๋ฆฌ์ง€๋ฅผ ์ฃผ์–ด ๋“ฃ๊ณ  ์‹ถ์€ ๊ณผ๋ชฉ์— ๋งˆ์ผ๋ฆฌ์ง€๋ฅผ ๊ณผ๋ชฉ๋‹น 1~36์„ ๋ถ„๋ฐฐํ•œ๋‹ค.
      ๊ทธ๋ฆฌ๊ณ  ๋ชจ๋‘ ๋ถ„๋ฐฐ๊ฐ€ ๋์ด ๋‚˜๋ฉด ๊ณผ๋ชฉ์— ๋Œ€ํ•ด์„œ ๋งˆ์ผ๋ฆฌ์ง€๋ฅผ ๋งŽ์ด ํˆฌ์žํ•œ ์ˆœ์œผ๋กœ ๊ทธ ๊ณผ๋ชฉ์˜ ์ˆ˜๊ฐ•์ธ์›๋งŒํผ ์‹ ์ฒญ๋˜๋Š” ๋ฐฉ์‹์ด๋‹ค.

    2. ์„ฑ์ค€์ด๋Š” ์ฃผ์–ด์ง„ ๋งˆ์ผ๋ฆฌ์ง€๋กœ ์ตœ๋Œ€ํ•œ ๋งŽ์€ ๊ณผ๋ชฉ์„ ์‹ ์ฒญํ•˜๊ณ  ์‹ถ์–ด ํ•œ๋‹ค.
      (๋‚ด๊ฐ€ ๋งˆ์ผ๋ฆฌ์ง€๋ฅผ ๋„ฃ๊ณ  ์ดํ›„์— ๊ณผ๋ชฉ์„ ์‹ ์ฒญํ•˜๋Š” ์‚ฌ๋žŒ์€ ์—†๋‹ค) ๋งˆ์ผ๋ฆฌ์ง€๋Š” ํ•œ ๊ณผ๋ชฉ์— 1์—์„œ 36๊นŒ์ง€ ๋„ฃ์„ ์ˆ˜ ์žˆ๋‹ค.

    3. ๊ณผ๋ชฉ ์ˆ˜ n (1 โ‰ค n โ‰ค 100)
      ๋งˆ์ผ๋ฆฌ์ง€ m (1 โ‰ค m โ‰ค 100)
      ๊ฐ ๊ณผ๋ชฉ๋งˆ๋‹ค 2์ค„์˜ ์ž…๋ ฅ์ด ์ฃผ์–ด์ง€๋Š”๋ฐ ์ฒซ์งธ ์ค„์—๋Š” ๊ฐ ๊ณผ๋ชฉ์— ์‹ ์ฒญํ•œ ์‚ฌ๋žŒ ์ˆ˜ Pi๊ณผ ๊ณผ๋ชฉ์˜ ์ˆ˜๊ฐ•์ธ์› Li
      ๊ทธ ๋‹ค์Œ ์ค„์—๋Š” ๊ฐ ์‚ฌ๋žŒ์ด ๋งˆ์ผ๋ฆฌ์ง€๋ฅผ ์–ผ๋งˆ๋‚˜ ๋„ฃ์—ˆ๋Š”์ง€ ์ฃผ์–ด์ง„๋‹ค.

    4. ์ •๋ ฌ ์œ ํ˜•์˜ ๋ฌธ์ œ

    ๐Ÿ–ฅ ์†Œ์Šค ์ฝ”๋“œ

    from sys import stdin
    
    n, m = map(int, stdin.readline().split())
    res = 0
    c = []
    
    for i in range(n):
        p, l = map(int, stdin.readline().split())
        point = list(map(int, stdin.readline().split()))
        point.sort(reverse=True)
        if p < l:
            c.append(1)
        else:
            mile = point[l - 1]
            c.append(mile)
    
    c.sort()
    for class_m in c:
        if m - class_m >= 0:
            res += 1
            m -= class_m
    print(res)

    ๐Ÿ”– ์˜ˆ์ œ ๋ฐ ์‹คํ–‰๊ฒฐ๊ณผ

    ์˜ˆ์ œ

    5 76
    5 4 
    36 25 1 36 36
    4 4
    30 24 25 20
    6 4
    36 36 36 36 36 36
    2 4
    3 7
    5 4
    27 15 26 8 14

    ์‹คํ–‰๊ฒฐ๊ณผ

    4

    โŒจ๏ธ ๋ฌธ์ œ ํ’€์ด

    1. ๊ณผ๋ชฉ์— ์‹ ์ฒญํ•œ ์ธ์› ์ˆ˜๋ณด๋‹ค ์ˆ˜๊ฐ• ์ธ์›์ด ๋†’๋‹ค๋ฉด, ๋งˆ์ผ๋ฆฌ์ง€๋ฅผ ํฌ๊ฒŒ ํˆฌ์žํ•˜์ง€ ์•Š์•„๋„ ๋œ๋‹ค.
      ๋ฐ˜๋Œ€๋กœ ์‹ ์ฒญํ•œ ์ธ์› ์ˆ˜๊ฐ€ ์ˆ˜๊ฐ• ์ธ์›๋ณด๋‹ค ๋†’๋‹ค๋ฉด, ์„ฑ์ค€์ด๊ฐ€ ์šฐ์„ ์ˆœ์œ„๋ฅผ ๊ฐ€์ง€๊ธฐ ๋•Œ๋ฌธ์—
      (์ˆ˜๊ฐ•์ธ์›) ๋ฒˆ์งธ ์‹ ์ฒญํ•œ ์‚ฌ๋žŒ๋งŒํผ๋งŒ ์‹ ์ฒญํ•˜๋ฉด ์ˆ˜๊ฐ•ํ•  ์ˆ˜ ์žˆ๋‹ค.
      ์‹ ์ฒญํ•œ ๋งˆ์ผ๋ฆฌ์ง€๋Š” ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•ด์„œ ๊ณ„์‚ฐํ•œ๋‹ค.

      if p < l:
       c.append(1)
      else:
       mile = point[l - 1]
       c.append(mile)
    2. c๋ฅผ ์ •๋ ฌํ•˜๊ณ  ์„ฑ์ค€์ด๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋งˆ์ผ๋ฆฌ์ง€์—์„œ ์‹ ์ฒญํ•  ๋•Œ ํ•„์š”ํ•œ ๋งˆ์ผ๋ฆฌ์ง€๋ฅผ ๋นผ์ฃผ๋ฉฐ, ์Œ์ˆ˜๊ฐ€ ๋˜์ง€ ์•Š์œผ๋ฉด res ์— 1์„ ์ถ”๊ฐ€ํ•œ๋‹ค

    ๐Ÿ’พ ๋Š๋‚€์ 

    1. ๊ทธ๋ฆฌ๋””๊ฐ€ ๋ฌป์€ ์ •๋ ฌ์„ ์ด์šฉํ•œ ๋ฌธ์ œ์˜€์Šต๋‹ˆ๋‹ค.
    ๋ฐ˜์‘ํ˜•

    ๋Œ“๊ธ€

Designed by Tistory.