๊ฑฐ์ค๋ฆ๋์ผ๋ก ์ฌ์ฉํ 500์, 100์, 50์, 10์์ด ๋ฌดํํ ์กด์ฌ
์๋์๊ฒ ๊ฑฐ์ฌ๋ฌ ์ฃผ์ด์ผ ํ ๋์ด N์์ผ ๋ ๊ฑฐ์ฌ๋ฌ ์ฃผ์ด์ผ ํ ๋์ ์ ์ต์ ๊ฐ์๋?
(๋จ, N์ ํญ์ 10์ ๋ฐฐ์)
๊ฐ์ฅ ํฐ ํํ ๋จ์๋ถํฐ ๊ฑฐ์ฌ๋ฌ ์ค๋ค
๊ฐ์ง๊ณ ์๋ ๋์ ์ค ํฐ ๋จ์๊ฐ ํญ์ ์์ ๋จ์์ ๋ฐฐ์์ด๋ฏ๋ก ์์ ๋จ์์ ๋์ ๋ค์ ์ข ํฉํด ๋ค๋ฅธ ํด๊ฐ ๋์ฌ ์ ์๊ธฐ ๋๋ฌธ
๐จ ๋ง์ฝ ํฐ ํํ ๋จ์๊ฐ ์์ ํํ ๋จ์์ ๋ฐฐ์๊ฐ ์๋๋ผ๋ฉด?
n = 1260
count = 0
array = [500, 100, 50, 10]
for coin in array:
count += n // coin
n %= coin
print(count)
์ฝ๋ ์คํ ๊ณผ์
n = 1260
coin = 500
count += 1260 // 500
# count = 2
1260 %= 500
# n = 260
n = 260
coin = 100
count += 260 // 100
# count = 2 + 2 = 4
260 %= 100
# n = 60
n = 60
coin = 50
count += 60 // 50
# count = 4 + 1 = 5
60 %= 50
# n = 10
n = 10
coin = 10
count += 10 // 10
# count = 5 + 1 = 6
10 %= 10
# n = 0
ํํ์ ์ข ๋ฅ๊ฐ K์ผ ๋ ์๊ฐ๋ณต์ก๋๋ O(K)
์ด๋ ํ ์ N์ด 1์ด ๋ ๋๊น์ง ๋ค์์ ๋ ๊ณผ์ ์ค ํ๋๋ฅผ ๋ฐ๋ณต์ ์ผ๋ก ์ ํํด์ ์ํ
1. N - 1
2. N // K (๋จ, N์ด K๋ก ๋๋์ด ๋จ์ด์ง ๋๋ง ์ ํ ๊ฐ๋ฅ)
N๊ณผ K๊ฐ ์ฃผ์ด์ง ๋ N์ด 1์ด ๋ ๋๊น์ง 1๋ฒ ํน์ 2๋ฒ์ ์ํํด์ผํ๋ ์ต์ ํ์๋?
์ฃผ์ด์ง N์ ๋ํ์ฌ ์ต๋ํ ๋ง์ด ๋๋๊ธฐ๋ฅผ ์ํ
K๊ฐ 2 ์ด์์ด๋ฉด K๋ก ๋๋๋ ๊ฒ์ด 1์ ๋นผ๋ ๊ฒ๋ณด๋ค ํญ์ ๋น ๋ฅด๊ฒ N์ ์ค์ผ ์ ์๋ค
๋ N์ ํญ์ 1์ ๋๋ฌํ๊ฒ ๋๋ค
n, k = map(int, input().split())
result = 0
while True:
target = (n // k) * k
result += (n - target)
n = target
if (n < k):
break
result += 1
n //= k
result += (n - 1)
print(result)
์ฝ๋ ์คํ ๊ณผ์
n = 25
k = 3
result = 0
target = (25 // 3) * 3
# target = 8 * 3 = 24
result += (25 - 24)
# result = 1
n = target
# n = 24
result += 1
# result = 2
24 //= 3
# n = 8
n = 8
result = 2
target = (8 // 3) * 3
# target = 2 * 3 = 6
result += (8 - 6)
# result = 2 + 2 = 4
n = target
# n = 6
result += 1
# result = 5
6 //= 3
# n = 2
n = 2
result = 5
target = (2 // 3) * 3
# target = 0
result += (2 - 0)
# result = 5 + 2 = 7
n = target
# n = 0
break
result += (n - 1)
# result = 7 + 0 - 1 = 6
if~else๋ก ๊ตฌํํ ์๋ ์์ผ๋ ์์ฒ๋ผ ๋ฐ๋ณต๋ฌธ ํ๋์์ ๋ค ํด๊ฒฐํ๋ฉด ๋ก๊ทธ๋ณต์ก๋๋ฅผ ๊ฐ์ ธ N๊ณผ K๊ฐ 100์ต 1000์ต ์ด์์ด ๋์ด๋ ๋ฎ์ ๋ณต์ก๋๋ฅผ ๊ฐ์ง ์ ์๋ค.
๊ฐ ์๋ฆฌ๊ฐ 0-9์ ์ซ์๋ก๋ง ์ด๋ฃจ์ด์ง ๋ฌธ์์ด S๊ฐ ์ฃผ์ด์ก์ ๋, ์ผ์ชฝ๋ถํฐ ์ค๋ฅธ์ชฝ์ผ๋ก ํ๋์ฉ ๋ชจ๋ ์ซ์๋ฅผ ํ์ธํ๋ฉฐ ์ซ์ ์ฌ์ด์ x ํน์ + ์ฐ์ฐ์๋ฅผ ๋ฃ์ด ๊ฒฐ๊ณผ์ ์ผ๋ก ๋ง๋ค์ด์ง ์ ์๋ ๊ฐ์ฅ ํฐ ์๋?
(๋จ, ๋ชจ๋ ์ฐ์ฐ์ ์ผ์ชฝ์์๋ถํฐ ์์๋๋ก ์ด๋ฃจ์ด์ง๋ค. ์ฌ์น์ฐ์ฐ ๋ฌด๊ด)
์) 02984
((((0 + 2) x 9) x 8) x 4) = 576
๋ ์๊ฐ ๋ชจ๋ 2 ์ด์์ธ ๊ฒฝ์ฐ์๋ง ๊ณฑํ๊ณ ๋๋จธ์ง๋ ๋ํ๊ธฐ
๋ ์ ์ค ํ๋๋ผ๋ 0์ด๋ 1์ธ ๊ฒฝ์ฐ ๊ณฑํ๊ธฐ๋ณด๋ค๋ ๋ํ๊ธฐ๋ฅผ ์ํํ๋ ๊ฒ์ด ๋ ํฐ ๊ฒฐ๊ณผ๊ฐ์ ๊ฐ์ง
data = input()
result = int(data[0])
for i in range(1, len(data)):
num = int(data[i])
if num <= 1 or result <= 1:
result += num
else:
result *= num
print(result)
๋ชจํ๊ฐ ๊ธธ๋์์๋ ๋ชจํ๊ฐ๋ฅผ ๋์์ผ๋ก '๊ณตํฌ๋'๋ฅผ ์ธก์ ํ๋๋ฐ, '๊ณตํฌ๋'๊ฐ ๋์ ๋ชจํ๊ฐ๋ ์ํ ์ํฉ์์ ์ ๋๋ก ๋์ฒํ ๋ฅ๋ ฅ์ด ๋จ์ด์ง๋๋ค.
๋ชจํ๊ฐ ๊ธธ๋์ฅ์ ๋ชจํ๊ฐ ๊ทธ๋ฃน์ ์์ ํ๊ฒ ๊ตฌ์ฑํ๊ณ ์ ๊ณตํฌ๋๊ฐ X์ธ ๋ชจํ๊ฐ๋ ๋ฐ๋์ X๋ช ์ด์์ผ๋ก ๊ตฌ์ฑํ ๋ชจํ๊ฐ ๊ทธ๋ฃน์ ์ฐธ์ฌํด์ผ ์ฌํ์ ๋ ๋ ์ ์๋๋ก ๊ท์ ํ์ต๋๋ค.
N๋ช ์ ๋ชจํ๊ฐ์ ๋ํ ์ ๋ณด๊ฐ ์ฃผ์ด์ก์ ๋ ์ฌํ์ ๋ ๋ ์ ์๋ ๊ทธ๋ฃน ์์ ์ต๋๊ฐ์?
๊ณตํฌ๋๊ฐ ๋ฎ์ ๋ชจํ๊ฐ๋ถํฐ ํ๋์ฉ ํ์ธ
๊ณตํฌ๋๊ฐ ๋ฎ์ ๋ชจํ๊ฐ๋ถํฐ ๊ทธ๋ฃน์ ์ง ๋ค๋ฉด ํญ์ ์ต์ํ์ ๋ชจํ๊ฐ์ ์๋ง ํฌํจํ์ฌ ๊ทธ๋ฃน์ ๊ฒฐ์ฑํ๊ฒ ๋จ
n = int(input())
data = list(map(int, input().split()))
data.sort()
group = 0
member = 0
for score in data:
member += 1
if member >= score:
group += 1
member = 0
print(group)
# 2