2022. 7. 18. 09:04ใ๐ฑ Algorithm/Greedy
1052๋ฒ: ๋ฌผ๋ณ
์ง๋ฏผ์ด๋ N๊ฐ์ ๋ฌผ๋ณ์ ๊ฐ์ง๊ณ ์๋ค. ๊ฐ ๋ฌผ๋ณ์๋ ๋ฌผ์ ๋ฌดํ๋๋ก ๋ถ์ ์ ์๋ค. ์ฒ์์ ๋ชจ๋ ๋ฌผ๋ณ์๋ ๋ฌผ์ด 1๋ฆฌํฐ์ฉ ๋ค์ด์๋ค. ์ง๋ฏผ์ด๋ ์ด ๋ฌผ๋ณ์ ๋ ๋ค๋ฅธ ์ฅ์๋ก ์ฎ๊ธฐ๋ ค๊ณ ํ๋ค. ์ง๋ฏผ์ด๋ ํ ๋ฒ
www.acmicpc.net
์ ๊ทผ
์ด์ง๋ฒ์ผ๋ก ์ ๊ทผํด์ผ ํ๋ค.
์ฝ๋
์ ๋ ฅ๋ฐ์ ์ซ์ N์ bin() ๋ฉ์๋๋ก ์ด์ง์๋ก ๋ณํํ๊ณ 1์ ๊ฐ์๋ฅผ ๊ตฌํ๋ค.
์ด 1์ ๊ฐ์๊ฐ ํด๋น ์ซ์ N ์์ ๋ง๋ค ์ ์๋ ๋ฌผ๋ณ์ ๊ฐฏ์๊ฐ ๋๋ค. ์๋ฅผ ๋ค์ด N ์ด 3์ด๋ผ๋ฉด, ์ธ ๊ฐ์ ๋ฌผ๋ณ์์ ๋ฌธ์ ์ ์กฐ๊ฑด๋๋ก ๋ง๋ค ์ ์๋ ๋ฌผ๋ณ์ ๊ฐ์๋ 2๊ฐ๊ฐ ๋๋ค.
๊ทธ๋์ while bin(N).count('1') > K:
์ด๋ผ๋ ์กฐ๊ฑด์์ ๋ง๋ค ์ ์๋ค. ์ฐ๋ฆฌ๊ฐ ๋ง๋ค๊ณ ์ ํ๋ ๋ฌผ๋ณ์ ๊ฐ์๋ K ๋ฅผ ๋์ง ์์์ผ ํ๋๊น.
# 1. ์ผ์ผ์ด ๋ค ๋ํด๋ณธ๋ค.
์ฝ๊ฐ ๋ธ๋ฃจํธ ํฌ์ค ๋ฐฉ์์ด ์๋๊น ์ถ๋ค.
N, K = map(int, input().split())
added_bottle = 0
while bin(N).count('1') > K:
N += 1
added_bottle += 1
print(added_bottle)
# 2. ์ด์ง๋ฒ ์ ๊ทผ
์ค๋ช ์ ์ฃผ์์ ๋ฌ์๋์๋ค ใ ใ
N, K = map(int, input().split())
added_bottle = 0
while bin(N).count('1') > K:
idx = bin(N)[::-1].index('1') # N์์ 1์ด ์ฒ์ ๋ํ๋ index ๋ฅผ ๊ตฌํ๊ธฐ ์ํด ๋ค์ง๋๋ค.
bi_to_decimal = 2 ** idx # ํด๋น ์ธ๋ฑ์ค(์ด์ง์)๋ฅผ 10์ง์๋ก ๋ณํ
added_bottle += bi_to_decimal
N += bi_to_decimal
print(added_bottle)
'๐ฑ Algorithm > Greedy' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฐฑ์ค 12845 ๋ชจ๋์ ๋ง๋ธ ํ์ด์ฌ (0) | 2023.01.20 |
---|---|
๋ฐฑ์ค 1455 ๋ค์ง๊ธฐ ํ์ด์ฌ (0) | 2023.01.11 |
๋ฐฑ์ค 1213 ํฐ๋ฆฐ๋๋กฌ ๋ง๋ค๊ธฐ ํ์ด์ฌ (0) | 2022.07.05 |
๋ฐฑ์ค 1931 ํ์ด์ฌ (0) | 2022.01.05 |
๋ฐฑ์ค 11000 ํ์ด์ฌ (0) | 2022.01.04 |