๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ(ํ์๋ฒ): ํ์ฌ ์ํฉ์์ ์ง๊ธ ๋น์ฅ ์ข์ ๊ฒ๋ง ๊ณ ๋ฅด๋ ๋ฐฉ๋ฒ
- ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ์์๋ ๋ฌธ์ ํ์ด๋ฅผ ์ํ ์ต์ํ์ ์์ด๋์ด๋ฅผ ๋ ์ฌ๋ฆฌ๊ณ ์ด๊ฒ์ด ์ ๋นํ์ง ๊ฒํ ํ ์ ์์ด์ผ ํ๋ค.
ex) ๊ฑฐ์ค๋ฆ๋ ๋ฌธ์ - ๊ฐ์ฅ ํฐ ํํ ๋จ์๋ถํฐ ๋์ ๊ฑฐ์ฌ๋ฌ ์ค
ใด ๊ฐ์ง๊ณ ์๋ ๋์ ์ค์์ ํฐ ๋จ์๊ฐ ํญ์ ์์ ๋จ์์ ๋ฐฐ์์ด๋ฏ๋ก ์์ ๋จ์๋ค์ ์ข ํฉํด ๋ค๋ฅธ ํด๊ฐ ๋์ฌ ์ ์๋ค!
n = int(input())
cnt = 0
coin = [500, 100, 50, 10]
for i in coin: # ์๊ฐ ๋ณต์ก๋ O(K) <- ๋์ ์ ์ข
๋ฅ K๊ฐ
cnt += n // i
n %= i
print(cnt)
์ค์ ๋ฌธ์ 1. ํฐ ์์ ๋ฒ์น
n, m, k = map(int, input().split())
num = list(map(int, input().split()))
res = 0
num.sort()
first = num[n-1]
second = num[n-2]
while True:
for i in range(k):
if m == 0:
break
res += first
m -= 1
if m == 0:
break
res += second
m -= 1
print(res)
- ์ ๋ ฅ๊ฐ ์ค์์ ๊ฐ์ฅ ํฐ ์์ ๋ ๋ฒ์งธ๋ก ํฐ ์๋ง ์ ์ฅํ๋ฉด ๋๋ค.
- ๊ฐ์ฅ ํฐ ์ K๋ฒ + ๋ ๋ฒ์งธ๋ก ํฐ ์ 1๋ฒ ๋ฐ๋ณต
* M์ ํฌ๊ธฐ๊ฐ ์ปค์ง ๊ฒฝ์ฐ ์๊ฐ ์ด๊ณผ ํ์ . ๋ค๋ฅธ ๋ฐฉ๋ฒ์ผ๋ก ๋ฌธ์ ๋ฅผ ํด๊ฒฐํด๋ณด์.
n, m, k = map(int, input().split())
num = list(map(int, input().split()))
res = 0
num.sort()
first = num[n-1]
second = num[n-2]
cnt = m // (k + 1) * k + m % (k + 1) # ๊ฐ์ฅ ํฐ ์ ๋ํ๋ ํ์
res += cnt * first + (m - cnt) * second # ๋ํ๊ธฐ
print(res)
์ค์ ๋ฌธ์ 2. ์ซ์ ์นด๋ ๊ฒ์
n, m = map(int, input().split())
res = 0
for i in range(n):
cards = list(map(int, input().split()))
if res < min(cards):
res = min(cards)
print(res)
- ๊ฐ ํ๋ง๋ค ๊ฐ์ฅ ์์ ์๋ฅผ ์ฐพ์ ๋ค์ ๊ทธ ์ ์ค์์ ๊ฐ์ฅ ํฐ ์๋ฅผ ์ฐพ๋๋ค.
์ค์ ๋ฌธ์ 3. 1์ด ๋ ๋๊น์ง
n, k = map(int, input().split())
cnt = 0
while n != 1:
if n % k == 0:
n //= k
else:
n -= 1
cnt += 1
print(cnt)
- ์ต๋ํ ๋ง์ด ๋๋๊ธฐ๋ฅผ ์ํํ๋ฉด ๋๋ค.
'๐ค > ์๊ณ ๋ฆฌ์ฆ ์ ๋ฆฌ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
DFS / BFS (๊น์ด์ฐ์ ํ์ / ๋๋น์ฐ์ ํ์) (0) | 2022.01.28 |
---|---|
๊ตฌํ ์๊ณ ๋ฆฌ์ฆ (Implementation Algorithm) (0) | 2022.01.26 |
Selection Sort, Merge Sort ์ ํ์ฑ ๋ฐ ์๊ฐ๋ณต์ก๋ ์ฆ๋ช (0) | 2021.09.17 |
Counting Sort (๊ณ์ ์ ๋ ฌ) (0) | 2021.09.10 |
์ ๋ ฌ (์ ์ฒ๊ธฐ ์ ๋ฆฌ ๋ถ๋ถ, C๋ก ๊ตฌํ) (0) | 2021.09.10 |