-
[๋ฐฑ์ค] 12018 Yonsei TOTO with PythonPS 2022. 3. 9. 23:28728x90๋ฐ์ํ
๐ BOJ 12018 Yonsei TOTO
๐ก ์กฐ๊ฑด
๊ฐ๊ฐ์ ํ์๋ค์๊ฒ ๋ง์ผ๋ฆฌ์ง๋ฅผ ์ฃผ์ด ๋ฃ๊ณ ์ถ์ ๊ณผ๋ชฉ์ ๋ง์ผ๋ฆฌ์ง๋ฅผ ๊ณผ๋ชฉ๋น 1~36์ ๋ถ๋ฐฐํ๋ค.
๊ทธ๋ฆฌ๊ณ ๋ชจ๋ ๋ถ๋ฐฐ๊ฐ ๋์ด ๋๋ฉด ๊ณผ๋ชฉ์ ๋ํด์ ๋ง์ผ๋ฆฌ์ง๋ฅผ ๋ง์ด ํฌ์ํ ์์ผ๋ก ๊ทธ ๊ณผ๋ชฉ์ ์๊ฐ์ธ์๋งํผ ์ ์ฒญ๋๋ ๋ฐฉ์์ด๋ค.์ฑ์ค์ด๋ ์ฃผ์ด์ง ๋ง์ผ๋ฆฌ์ง๋ก ์ต๋ํ ๋ง์ ๊ณผ๋ชฉ์ ์ ์ฒญํ๊ณ ์ถ์ด ํ๋ค.
(๋ด๊ฐ ๋ง์ผ๋ฆฌ์ง๋ฅผ ๋ฃ๊ณ ์ดํ์ ๊ณผ๋ชฉ์ ์ ์ฒญํ๋ ์ฌ๋์ ์๋ค) ๋ง์ผ๋ฆฌ์ง๋ ํ ๊ณผ๋ชฉ์ 1์์ 36๊น์ง ๋ฃ์ ์ ์๋ค.๊ณผ๋ชฉ ์ n (1 โค n โค 100)
๋ง์ผ๋ฆฌ์ง m (1 โค m โค 100)
๊ฐ ๊ณผ๋ชฉ๋ง๋ค 2์ค์ ์ ๋ ฅ์ด ์ฃผ์ด์ง๋๋ฐ ์ฒซ์งธ ์ค์๋ ๊ฐ ๊ณผ๋ชฉ์ ์ ์ฒญํ ์ฌ๋ ์ Pi๊ณผ ๊ณผ๋ชฉ์ ์๊ฐ์ธ์ Li
๊ทธ ๋ค์ ์ค์๋ ๊ฐ ์ฌ๋์ด ๋ง์ผ๋ฆฌ์ง๋ฅผ ์ผ๋ง๋ ๋ฃ์๋์ง ์ฃผ์ด์ง๋ค.์ ๋ ฌ ์ ํ์ ๋ฌธ์
๐ฅ ์์ค ์ฝ๋
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
โจ๏ธ ๋ฌธ์ ํ์ด
๊ณผ๋ชฉ์ ์ ์ฒญํ ์ธ์ ์๋ณด๋ค ์๊ฐ ์ธ์์ด ๋๋ค๋ฉด, ๋ง์ผ๋ฆฌ์ง๋ฅผ ํฌ๊ฒ ํฌ์ํ์ง ์์๋ ๋๋ค.
๋ฐ๋๋ก ์ ์ฒญํ ์ธ์ ์๊ฐ ์๊ฐ ์ธ์๋ณด๋ค ๋๋ค๋ฉด, ์ฑ์ค์ด๊ฐ ์ฐ์ ์์๋ฅผ ๊ฐ์ง๊ธฐ ๋๋ฌธ์
(์๊ฐ์ธ์) ๋ฒ์งธ ์ ์ฒญํ ์ฌ๋๋งํผ๋ง ์ ์ฒญํ๋ฉด ์๊ฐํ ์ ์๋ค.
์ ์ฒญํ ๋ง์ผ๋ฆฌ์ง๋ ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌํด์ ๊ณ์ฐํ๋ค.if p < l: c.append(1) else: mile = point[l - 1] c.append(mile)
c๋ฅผ ์ ๋ ฌํ๊ณ ์ฑ์ค์ด๊ฐ ๊ฐ์ง๊ณ ์๋ ๋ง์ผ๋ฆฌ์ง์์ ์ ์ฒญํ ๋ ํ์ํ ๋ง์ผ๋ฆฌ์ง๋ฅผ ๋นผ์ฃผ๋ฉฐ, ์์๊ฐ ๋์ง ์์ผ๋ฉด res ์ 1์ ์ถ๊ฐํ๋ค
๐พ ๋๋์
- ๊ทธ๋ฆฌ๋๊ฐ ๋ฌป์ ์ ๋ ฌ์ ์ด์ฉํ ๋ฌธ์ ์์ต๋๋ค.
๋ฐ์ํ'PS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค] 1269 ๋์นญ ์ฐจ์งํฉ with Python (0) 2022.03.10 [๋ฐฑ์ค] 12760 ์ตํ์ ์น์๋ ๋๊ตฌ? with Python (0) 2022.03.10 [๋ฐฑ์ค] 10163 ์์ข ์ด with Python (0) 2022.03.09 [๋ฐฑ์ค] 9081 ๋จ์ด ๋ง์ถ๊ธฐ with Python (2) 2022.03.09 [๋ฐฑ์ค] 4811 ์์ฝ with Python (0) 2022.03.09