โ๏ธ ๋ฌธ์
์๊ทผ์ด๋ ์์ฆ ์คํ๊ณต์ฅ์์ ์คํ์ ๋ฐฐ๋ฌํ๊ณ ์๋ค. ์๊ทผ์ด๋ ์ง๊ธ ์ฌํ๊ฐ๊ฒ์ ์คํ์ ์ ํํ๊ฒ Nํฌ๋ก๊ทธ๋จ์ ๋ฐฐ๋ฌํด์ผ ํ๋ค. ์คํ๊ณต์ฅ์์ ๋ง๋๋ ์คํ์ ๋ด์ง์ ๋ด๊ฒจ์ ธ ์๋ค. ๋ด์ง๋ 3ํฌ๋ก๊ทธ๋จ ๋ด์ง์ 5ํฌ๋ก๊ทธ๋จ ๋ด์ง๊ฐ ์๋ค.
์๊ทผ์ด๋ ๊ท์ฐฎ๊ธฐ ๋๋ฌธ์, ์ต๋ํ ์ ์ ๋ด์ง๋ฅผ ๋ค๊ณ ๊ฐ๋ ค๊ณ ํ๋ค. ์๋ฅผ ๋ค์ด, 18ํฌ๋ก๊ทธ๋จ ์คํ์ ๋ฐฐ๋ฌํด์ผ ํ ๋, 3ํฌ๋ก๊ทธ๋จ ๋ด์ง 6๊ฐ๋ฅผ ๊ฐ์ ธ๊ฐ๋ ๋์ง๋ง, 5ํฌ๋ก๊ทธ๋จ 3๊ฐ์ 3ํฌ๋ก๊ทธ๋จ 1๊ฐ๋ฅผ ๋ฐฐ๋ฌํ๋ฉด, ๋ ์ ์ ๊ฐ์์ ๋ด์ง๋ฅผ ๋ฐฐ๋ฌํ ์ ์๋ค.
์๊ทผ์ด๊ฐ ์คํ์ ์ ํํ๊ฒ Nํฌ๋ก๊ทธ๋จ ๋ฐฐ๋ฌํด์ผ ํ ๋, ๋ด์ง ๋ช ๊ฐ๋ฅผ ๊ฐ์ ธ๊ฐ๋ฉด ๋๋์ง ๊ทธ ์๋ฅผ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
๐ค ์ ์ถ๋ ฅ ์์
๐ก ํ์ด
์ด์ฝํ ์ฑ ์ผ๋ก ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ์ ๊ณต๋ถํ๊ณ ์๋ ๊ธฐ์ธ๋ฅผ ์ด์ด ๋ฐฑ์ค์์ ๊ทธ๋ฆฌ๋ ์ ํ์ผ๋ก ๋ถ๋ฅ๋ ๋ฌธ์ ๋ฅผ ํ์ด๋ณด๋ ์ค์ด๋ค.
์์ด๋์ด 1๏ธโฃ
๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ํ๊ธฐ ์ํด ์ฒ์ ๋ ์ฌ๋ฆฐ ์์ด๋์ด๋ ์๋์ ๊ฐ๋ค.
โ ฐ. N์ด 5์ ๋ฐฐ์์ธ ๊ฒฝ์ฐ → ๋ต์ N//5
โ ฑ. N์ด 3์ ๋ฐฐ์์ธ ๊ฒฝ์ฐ → ๋ต์ N//3
โ ฒ. N์ด 3์ ๋ฐฐ์๋ ์๋๊ณ 5์ ๋ฐฐ์๋ ์๋ ๊ฒฝ์ฐ → N์ด 7, 8, 11, ...
์ฒซ ๋ฒ์งธ์ ๋ ๋ฒ์งธ ์ผ์ด์ค๋ ๋ต์ด ๋ช ํํ๊ธฐ ๋๋ฌธ์ '์ธ ๋ฒ์งธ ์ผ์ด์ค๋ฅผ ์ ์ฒ๋ฆฌํ ์ ์๋๋'๊ฐ ์ด ๋ฌธ์ ์ ํต์ฌ์ด๋ผ๊ณ ์๊ฐํ๋ค.
๊ทธ๋ฐ๋ฐ ์ธ ๋ฒ์งธ ์ผ์ด์ค์ ๋ํด์ ๊ณ์ ์๊ฐํด๋ณด๋๊น
1) N์์ 5๋ฅผ ๋บ ๊ฐ(์ต๋ํ N์ ์๊ฒ ๋ง๋ค์ด๋๊ฐ๋ ๊ฒ ์ค์ํ๋ค๊ณ ํ๋จ)์ด 3์ด๋ 5๋ก ๋๋์ด์ง๋์ง ์ฒดํฌ
2) 3์ด๋ 5๋ฅผ ๋บ ๊ณผ์ ์์ ๋ฌด์กฐ๊ฑด ํ๋์ ์คํ์ ์ฎ๊ธด ๊ฑฐ๋๊น ๋ต์ +1
์ฌ๊ธฐ๊น์ง์ ๊ณผ์ ์์๋ถํฐ ํ์ ์ด ๋ณด์๋ค.
์๋ฅผ ๋ค์ด, 8์ด๋ 11์ 3๊ณผ 5๋ฅผ ์ ์กฐํฉํ๋ฉด ๋ต์ด ๋์ค๋๋ฐ 7์ ์ด๋ป๊ฒ ํด๋ ์ ๊ฐ์ ๋ง๋ค ์ ์๊ธฐ ๋๋ฌธ์ -1์ด ๋์์ผ ํ๋ค. ๊ทธ๋ฐ๋ฐ ๊ณ์ฐ์ ๋ฉ์ถ๋ ์กฐ๊ฑด์ ์ด๋ป๊ฒ ๊ฑธ์ด์ค์ผ ํ์ง?๊ฐ ๊ฐ์ฅ ํฐ ๊ณ ๋ฏผ์ด์๊ณ , ์ด๊ฒ ๋ง๊ณ ๋ ๋ค์ํ ์๋ฌธ์ด ๋ค์์ผ๋ฏ๋ก ๋ด๊ฐ ์๊ฐํ ๋ก์ง์ด ๋ญ๊ฐ ์๋ชป๋๊ตฌ๋! ์ถ์๋ค.
์์ด๋์ด 2๏ธโฃ
๋ ๋ฒ์งธ ์์ด๋์ด๋ '5kg์ง๋ฆฌ ์คํ์ ๋ฌด์กฐ๊ฑด ๋จผ์ ๊ณ ๋ คํ๊ณ ๋จ์ ๋ฌด๊ฒ๋ฅผ 3kg๋ก ์ฑ์ฐ๋ ๊ฒ'์ด๋ค.
import sys
N = int(sys.stdin.readline().strip())
answer = -1
for i in range(N//5, -1, -1):
remainder = N-(i*5)
if remainder%3 == 0:
answer = i+(remainder//3)
break # ๋ต์ด ๋์๊ธฐ ๋๋ฌธ์ ๊ณ์ ๊ณ์ฐํ ํ์๊ฐ ์์
print(answer)
๋ฐ๋ณต๋ฌธ ๋ฒ์๋ฅผ ์์ ์ต๋๋ก ์ธ ์ ์๋ 5kg ๋ด์ง์ ์์ ๋ง์ถฐ๋๊ณ ๊ฑฐ๊ธฐ์ ํ๋์ฉ ์ค์ฌ๊ฐ๋ฉด์ ๊ฐ์ ํ์ธํ๋ ๋ฐฉ์์ด๋ค. 5kg ๋ด์ง๋ฅผ ์ด ๋งํผ ๋นผ์ค ํ 3์ผ๋ก ๋๋ด์ ๋ ๋๋ ๋จ์ด์ง๋ค๋ฉด ์ด๋ฏธ ๋ต์ด ๊ตฌํด์ง ๊ฒ์ด๊ธฐ ๋๋ฌธ์ break๋ฅผ ๊ฑธ์ด ํ์ถํด์ค๋ค.
์ด ๋ 8๋ฒ ๋ผ์ธ์์ remainder๋ผ๋ ์ถ๊ฐ์ ์ธ ๋ณ์๋ฅผ ์ฌ์ฉํ์ง ์๊ณ N -= (i*5)๋ฅผ ์ธ ๊ฒฝ์ฐ ๋ต์ด ์ด์ํ๊ฒ ๋์ค๋ ๋ฌธ์ ๊ฐ ์์๊ณ ์ฑ์งํผํฐ์ ๋์์ ๋ฐ์๋ค.
'Problem Solving > BOJ & Programmers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BOJ] 1463๋ฒ: 1๋ก ๋ง๋ค๊ธฐ (1) | 2024.09.03 |
---|---|
[BOJ] 11399๋ฒ: ATM (0) | 2024.08.27 |
[BOJ] 2217๋ฒ: ๋กํ (1) | 2024.02.25 |
[BOJ] 14501๋ฒ: ํด์ฌ (1) | 2024.02.05 |
[BOJ] 2960๋ฒ: RESETO (0) | 2024.01.18 |