Tags
- Java
- ์ํ
- BOJ
- dfs
- ๋ฌธ์์ด
- sort
- ์ ์๋ก
- ๋ฐฑํธ๋ํน
- ๊ตฌํ
- DP
- ์๋ฃ๊ตฌ์กฐ
- ์๋ฎฌ๋ ์ด์
- ์ ๋ ฌ
- queue
- Brute Force Algorithm
- SpringBoot
- LV2
- greedy
- BFS
- ๊น์ด ์ฐ์ ํ์
- Python
- ๊ทธ๋ํ ํ์
- ๊ต์ฌ
- stack
- ๋๋น ์ฐ์ ํ์
- Study
- PGM
- Dynamic Programming
- CodingTest
- ๊ทธ๋ํ ์ด๋ก
Archives
๊ธฐ๋ก๋ฐฉ
BOJ_18111 : ๋ง์ธํฌ๋ํํธ ๋ณธ๋ฌธ
๐ธ ๋ฌธ์ ๋ถ์ ๐ธ
- ๋ ๊ณ ๋ฅด๊ธฐ ์์ ์ ์ต์์๊ฐ์ด๋ฉฐ ๊ฐ์ฅ ๋์ด๊ฐ ๋์ ์ํ์ ์๊ฐ๊ณผ ๋์ด๋ฅผ ์ถ๋ ฅํ๋ค.
๐ธ ์ฝ๋ ๐ธ
# python3 : ์๊ฐ์ด๊ณผ , pypy3 : ํต๊ณผ
import sys
n, m, b = map(int, sys.stdin.readline().split())
arr = [list(map(int, sys.stdin.readline().split())) for _ in range(n)]
answer = sys.maxsize
index = 0
for floor in range(257): # (1)
up, down = 0, 0
for i in range(n): # (2)
for j in range(m):
if arr[i][j] >= floor: # (3)
up += arr[i][j] - floor
else: # (4)
down += floor - arr[i][j]
if b + up >= down and down + (up * 2) <= answer: # (5)
answer = down + (up * 2)
index = floor
print(answer, index)
๐ธ ์ฝ๋ ํด์ ๐ธ
- (1) : ์ธต ์๋ฅผ 0๋ถํฐ 256๊น์ง ์ฆ๊ฐ์ํค๋ฉฐ ๊ณ ๋ฅด๊ธฐ ์์
์ด ๊ฐ๋ฅํ์ง, ์ต์์๊ฐ์ธ์ง ํ์ธํ๋ค
- (2) : ์
๋ ฅ๋ฐ์ ๋์ด ์ ๋ณด๋ฅผ ์ํํ๋ค
- (3) : ๋ธ๋ก์ ๋์ด๊ฐ ํ์ฌ ์ธต ์(floor)๋ณด๋ค ํฌ๋ค๋ฉด ํฌ ์ฐจ์ด๋ฅผ up์ ํฉ์ฐ
- (4) : ๋ธ๋ก์ด ๋์ด๊ฐ ํ์ฌ ์ธต ์(floor)๋ณด๋ค ์๊ฐ๋ค๋ฉด ํฌ ์ฐจ์ด๋ฅผ down์ ํฉ์ฐ
- up : ๋นผ์ผํ๋ ๋ธ๋ก
- down : ๋ํด์ผํ๋ ๋ธ๋ก
- (5) : ๊ธฐ์กด ๋ธ๋ก(b)์ ๋นผ์ผํ๋ ๋ธ๋ก(up)์ ํฉ์ด ๋ํด์ผํ๋ ๋ธ๋ก(down)๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ์์ผ ๋ ๊ณ ๋ฅด๊ธฐ ๊ฐ๋ฅ.
- (5) : ๊ฑธ๋ฆฌ๋ ์๊ฐ์ด ์ ์ฅ๋ ์๊ฐ๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ผ๋ฉด ์ต์ ํ ์์ผ์ค
- ๊ฑธ๋ฆฌ๋ ์๊ฐ(answer) : ๋ํ๊ธฐ(1์ด์ฉ) + ๋นผ๊ธฐ(2์ด์ฉ)
- ๋ ๊ณ ๋ฅด๊ธฐ๋ฅผ ์งํํ ๋์ด : index
- (2) : ์
๋ ฅ๋ฐ์ ๋์ด ์ ๋ณด๋ฅผ ์ํํ๋ค
๐ธ ์ค๋ต ์ฝ๋ ๐ธ
import sys
input = sys.stdin.readline
N, M, B = map(int, input().split())
strs = ""
for i in range(N):
strs += input().rstrip() + " "
arr = list(map(int,strs.split()))
all_same = False
answer = 0
while not all_same:
if len(set(arr)) == 1:
all_same = True
break
if not all_same:
hi = max(arr)
low = min(arr)
hc = arr.count(hi)
lc = arr.count(low)
if hc < lc or B < lc:
arr = list(map(lambda x: x-1 if x==hi else x, arr))
B += hc
answer += 2 * hc
else:
arr = list(map(lambda x: x+1 if x==low else x, arr))
B -= lc
answer += lc
print(answer)
๐ธ ์ฝ๋ ํด์ ๐ธ
- python3, pypy3 ๋ชจ๋ ์๊ฐ์ด๊ณผ๊ฐ ๋์ค๋ ์ฝ๋์ด๋ค.
- ๋ธ๋ก ๋์ด ๋ฐฐ์ด์์ ์ต๋๊ฐ๊ณผ ์ต์๊ฐ์ ์ง์์ ์ผ๋ก ๋งค์นญํ๋ฉฐ ๋ ์ ๊ณ ๋ฅด๋ ๋ฐฉ์์ด๋ค.
- N, M์ ์ต๋๊ฐ์ด 500์ด๋ฏ๋ก ๋๋ฌด ๋ง์ ๋ฐ๋ณต์๋ฅผ ๊ฐ์ง๋ค.
๐ธ end ๐ธ
- ๋ฌธ์ ์ ๊ทผ์ ์๋ชปํด์ ๊ฒฐ๊ตญ ๋ต์ ์ฐพ์๋ดค๋ค. (๋ต์ ํฌ์คํ )
- ๋ฌธ์ ํ๊ทธ์ ๋ธ๋ฃจํธ ํฌ์ค๊ฐ ์์ด์ ์ด๋ ๋ถ๋ถ์ ๋ชจ๋ ์ฐพ์๋ด์ผํ ๊น ๊ณ ๋ฏผํ๋ค๊ฐ, ๋์ด๊ฐ ์ผ์ ํด์ง๋๊น์ง ํํํ๋ฅผ ๋ฐ๋ณตํ๋ ๋ฐฉ์์ ์ ํํ์ง๋ง ํ๋ ธ๋ค...
- ๋์ด๋ฅผ 0๋ถํฐ 256๊น์ง ๋์ฌ๊ฐ๋ฉฐ ์ต์์๊ฐ ์ค ๊ฐ์ฅ ๋์ธ ์ธต์ ์ถ๋ ฅํ๋ ๋ฐฉ์์ผ๋ก ํ์์ด์ผํ๋ค.
- ์๊ฐ์ด๊ณผ๋ ํด๊ฒฐํ๊ธฐ ์ฐธ ๋จธ๋ฆฌ์ํ๊ณ ๋ด ์ฝ๋๋ฅผ ๊ณ์ ์์ฌํด์ผํ๋ค๋๊ฒ ํ์ด๊ฐ ์ด๋ ค์ด ๊ฒ ๊ฐ๋ค. ์ข๋ ๊ทผ๊ฑฐ ์๊ฒ ํ์ด๊ฐ์ผ ํ ๊ฒ ๊ฐ๋ค.
- python3๋ ์๊ฐ์ด๊ณผ๊ฐ ๋์ pypy3๋ก ํด์ผํ๋ค๋๊ฒ ๋๋ค๋ฅธ ์์ฌ์์ผ๋ก ๋จ์๋ค.
728x90
'CodingTest > Python' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
BOJ_1547 : ๊ณต (0) | 2022.08.22 |
---|---|
BOJ_1676 : ํฉํ ๋ฆฌ์ผ 0์ ๊ฐ์ (0) | 2022.08.21 |
BOJ_2805 : ๋๋ฌด ์๋ฅด๊ธฐ (0) | 2022.08.20 |
BOJ_2108 : ํต๊ณํ (0) | 2022.08.18 |
BOJ_10866 : ๋ฑ (0) | 2022.08.17 |