๋ฌธ์ ๋งํฌ
1010๋ฒ: ๋ค๋ฆฌ ๋๊ธฐ
๋ฌธ์ ์์ฝ
๋ค๋ฆฌ ๋๊ธฐ ๋ฌธ์ ๋ ์์ชฝ์ N๊ฐ ์ฌ์ดํธ์ ๋์ชฝ์ M๊ฐ ์ฌ์ดํธ๋ฅผ ์ฐ๊ฒฐํ๋ ๋ค๋ฆฌ N๊ฐ๋ฅผ ์๋ก ๊ต์ฐจํ์ง ์๋๋ก ์ง๊ณ ์ถ๋ค. N๊ณผ M์ด (N ≤ M) ์ฃผ์ด์ง ๋, ๋ค๋ฆฌ ๊ฑด์ค์ด ๊ฐ๋ฅํ ๋ชจ๋ ๊ฒฝ์ฐ์ ๊ฐฏ์๋ฅผ ์ถ๋ ฅํ์์ค.
ํ์ด ์ค๋ช
๋ค๋ฆฌ๋ผ๋ฆฌ ๊ต์ฐจํ์ง ์์์ผํ๋ฏ๋ก, ๋ต์ M๊ฐ์ ์ฌ์ดํธ์์ N๊ฐ๋ฅผ ๊ณ ๋ฅด๋ ๊ฒฝ์ฐ์ ์=combination(range(M), N)์ ๊ธธ์ด์ด๋ค. ์ด์ ๋ฌธ์ ๋ฅผ ํ๋ฉด์ itertools์ combination์ ๋ฐฐ์ ๋ํฐ๋ผ ๋ฌด์ง์ฑ์ผ๋ก ์ ๋๊ฒ ์๋์ ๊ฐ์ ์ฝ๋๋ฅผ ์ ์ถํ๋ค.
print(len(list(combination(range(M), N))))
๊ฒฐ๊ณผ๋ ์๊ฐ์ด๊ณผ์ด๋ค. (์ ์ถ ๋ฒํธ 71022244)
๋ค์ ์ ์ ์ฐจ๋ฆฌ๊ณ , ๊ฒฝ์ฐ์ ์๋ง ๊ตฌํ๋ ๊ฒ์ด๋ ์กฐํฉ ์์ผ๋ก M!/(N!*N!)์ ๊ณ์ฐํ์ฌ ์ถ๋ ฅํด๋ณธ๋ค.
์ฒ์ ์๋์์๋ / ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ์ฌ ๋ต์ ๊ณ์ฐํ๊ณ ์ด๋ฅผ int()๋ก ์ถ๋ ฅํ์๋ค. (์ ์ถ๋ฒํธ 71022564)
print(int(bridge_num))
ํ๋ ธ์ต๋๋ค. ์ฌ์ 'ํน์'ํ๋ ๋ง์์ผ๋ก f-string์ผ๋ก ์ถ๋ ฅํด๋ณด๋๋ฐ, (์ ์ถ๋ฒํธ 71022654)
print(f"{bridge_num:.0f}")
๋ง์๋ค.! ๐ฎ
int()์ f-string์ float rounding ๋ฐฉ์์ด ๋ค๋ฅธ ๊ฒ์ผ๊น?
Python f-string Doc ์ด๊ธด ํ๋ฐ ๋ด๋ ๊ถ๊ทน์ ์ผ๋ก ๋ฐ์ฌ๋ฆผํ๋ ๊ฒ์ธ์ง, ๋ด๋ฆผํ๋ ๊ฒ์ธ์ง ๋์ค์ง ์์์ ๊ฒ์ํด๋ณด๋ int()์ f-string ๋ ๋ค rounding down ๋ฐฉ์์ด๋ผ๊ณ ํ๋ค.
๊ทธ๋ผ ์ ๊ฒฐ๊ณผ๊ฐ ๋ฌ๋๋ ๊ฑฐ์ง???
๋ผ๋ ์๋ฌธ์ด ์ค์ณ๊ฐ์ง๋ง, ์๋ ์ปดํจํฐ์์ float์ ํํ์ด (1/2)+(1/4)+...์ ๊ฐ์ ๋ฐฉ์์ผ๋ก ์ด๋ฃจ์ด์ง๋ฏ๋ก, ์ ์ ์๋ ์ค์ฐจ๊ฐ ์ค๋ต๊ณผ ์ ๋ต์ ๊ฐ๋ฅธ ๊ฒ์ด ์๋๊ฐ ์๊ฐํ์๋ค.
์ฌ์ค ์ด ๋ฌธ์ ์์ ๋ ์ค์ํ ์ฌ์ค์ ๋๋์ด ๋จ์ด์ง๋ ๊ฒ์ด ๋ถ๋ช ํ ์ ์ ๋๋์ ์์๋ // ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ์๋ ๊ฒ์ด๋ค. ๋๋จธ์ง๋ฅผ ๋ฌด์ํ๊ธฐ ๋๋ฌธ์ ์๋ํ ๊ฒฐ๊ด๊ฐ์ ์ป์ ํ๋ฅ ์ด ํจ์ฌ ๋์์ง๋ค.
์ ์ ๋๋์ ์์๋ // ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ์.