Tags
- ์ ๋ ฌ
- Python
- ๋ฐฑํธ๋ํน
- queue
- stack
- DP
- ๋๋น ์ฐ์ ํ์
- ์๋ฃ๊ตฌ์กฐ
- Dynamic Programming
- BFS
- SpringBoot
- Study
- ์ ์๋ก
- greedy
- Java
- dfs
- ์๋ฎฌ๋ ์ด์
- LV2
- ๊ตฌํ
- ๊น์ด ์ฐ์ ํ์
- CodingTest
- ๋ฌธ์์ด
- ๊ทธ๋ํ ํ์
- PGM
- ๊ต์ฌ
- Brute Force Algorithm
- sort
- ์ํ
- ๊ทธ๋ํ ์ด๋ก
- BOJ
Archives
๊ธฐ๋ก๋ฐฉ
BOJ_2805 : ๋๋ฌด ์๋ฅด๊ธฐ ๋ณธ๋ฌธ
๐ธ ๋ฌธ์ ๋ถ์ ๐ธ
- ๋๋ฌด์ ์, ์ํ๋ ๋ชฉ์ฌ ๊ธธ์ด, ๋๋ฌด๋ค์ ํฌ๊ธฐ๊ฐ ์ฃผ์ด์ง๋ค.
- ์ด๋ ๋์ด์ ์ ๋จ๊ธฐ๋ก ์๋์๋ ์ต๋ ๋์ด๋ก ์ถฉ๋ถํ ๋ชฉ์ฌ๋ฅผ ํ๋ณดํ ์ ์๋์ง ๊ตฌํ๋ค.
๐ธ ์ฝ๋ ๐ธ
# python3 : 39% , pypy : ํต๊ณผ
import sys
input = sys.stdin.readline
N, M = map(int,input().split())
arr = list(map(int,input().split()))
left, right = 1, max(arr)
while left <= right:
mid = (left+right) // 2
tree = 0
for i in arr:
if i > mid:
tree += i - mid
if tree >= M:
left = mid + 1
else:
right = mid - 1
print(right)
๐ธ ์ฝ๋ ํด์ ๐ธ
- ์ ๋จ๊ธฐ์ ๋์ด๋ฅผ ์ด๋ถํ์์ผ๋ก ๊ตฌํ๋ค.
๐ธ ์ค๋ต ์ฝ๋ ๐ธ
# python3 :47% , pypy : 47%
import sys
input = sys.stdin.readline
N, M = map(int,input().split())
arr = list(map(int,input().split()))
arr.sort()
answer = arr[-1]
tree = 0
while tree < M: # ์ ๋จ๊ธฐ์ ๋์ด(answer) ํ๋์ฉ ๋ฎ์ถ๊ธฐ
left = 0
right = N-1
answer -= 1
while right > left: # ์๋ฆฌ๋ ๋๋ฌด์ค์ ๊ฐ์ฅ ์์ ์ธ๋ฑ์ค ์ฐพ๊ธฐ
mid = (left+right)//2
if arr[mid] <= answer:
left = mid+1
else:
right = mid
tree += N - right
print(answer)
๐ธ ์ฝ๋ ํด์ ๐ธ
- ์๋ฆฌ๋ ๋๋ฌด์ค์ ๊ฐ์ฅ ์์ ์ธ๋ฑ์ค๋ฅผ ์ด๋ถํ์์ผ๋ก ์ฐพ๋๋ค.
- ์ ๋จ๊ธฐ ๋์ด๋ฅผ 1์ฉ๋ฎ์ถ๋ฉฐ ์๋ฆฌ๋ ๋๋ฌด์ ์์ ํฉํ๋ค.
๐ธ ๋ค๋ฅธ ์ฝ๋ ๐ธ
๐ธ ์ฝ๋ ํด์ ๐ธ
- pypy๊ฐ์๋ python3๋ก ํ์ดํ ์ฝ๋์ด๋ค.
- ์ ํํ์ง ์์ง๋ง Counter ํด๋์ค๋ฅผ ์ด์ฉํด ์กฐ๊ฑด(์ ๋จ๊ธฐ๋ณด๋ค ๋์)์ ๋ง๋ ๋๋ฌด๋ค์ ํฉ์ผ๋ก ํ๋ณํ๊ณ , ์ด๋ถํ์์ ์งํํ๋ ๊ฒ ๊ฐ๋ค.
- ์ถ์ฒ : https://www.acmicpc.net/source/30566317
๐ธ end ๐ธ
- ์๊ฐ๋ณด๋ค ์ด๋ ค์ ๋ค. ์ด๋ถํ์์ ์ฌ์ฉํด์ผํ๋ ๋ฌธ์ ์ฌ์ ๋ง์ ์๊ฐ์ด๊ณผ์ ์๋ฌ๋ ธ๋ค.
- ์ด๋ถํ์์ ์ ์ฉํด์ผํ๋ ๋ถ๋ถ๋ ๋ง์ด ํท๊น๋ ค์ ํธ๋ ์๊ฐ๋ ์ค๋๊ฑธ๋ ธ๋ค.
- ์๋ ํ์๋ ๋๋ฌด ์ธ๋ฑ์ค๋ฅผ ์ด๋ถํ์์ผ๋ก ์ฐพ๋ ์ฝ๋๋ python3, pypy๋๋ค ์๊ฐ์ด๊ณผ๊ฐ ๋์,
์ ๋จ๊ธฐ ๋์ด๋ฅผ ์ด๋ถํ์์ผ๋ก ์ฐพ๋ ์ฝ๋๋ก ๋ฐ๊ฟ์ ๋๋ ธ๋๋ pypy๋ง ์ฑ๊ณตํ๋ค. - python3๋ก ํต๊ณผํ ๋ถ๋ค ์ฝ๋๋ฅผ ๋ณด๋ collections ๋ชจ๋์ Counter ํด๋์ค๋ฅผ ์ฌ์ฉํ๋ค.
ํด์์ด ์๋ฒฝํ์ง ์์ง๋ง ์กฐ๊ธ ์ดํด๊ฐ ๋๊ธฐ๋ ํ๋ค. (์ง์ ๊ตฌํํ ์ผ๋๋ ์๋ฌ๋ค) - ์ด ๋ฌธ์ ๋ ์ด๋ถํ์ ๋ง๊ณ ๋ ๋งค๊ฐ๋ณ์ํ์ ๋ฌธ์ ์ธ๋ฐ, ์กฐ๊ฑด์ ๋ง์กฑํ๋ ์ต๋๊ฐ์ ์ฐพ๋ ๊ฒ์ด๋ผ๊ณ ํ๋ค. (์ถ์ฒ)
- ๋ด์ผ์ด๋ฉด solved.ac์ class 2 ์ ๋ชจ๋ ๋ฌธ์ ๋ฅผ ํ๊ฒ๋๋ค. ์ด๋ฒ ๋ฌธ์ ์ฒ๋ผ ํธ๋๋ฐ ์ค๋ ๊ฑธ๋ฆฌ๋ ๋ฌธ์ ๋ค์ด ๋ง์์งํ ๋ฐ, ์งง๊ฒ ํ๊ณ ๋๊ธฐ๋ คํ์ง๋ง๊ณ ๋ฑ 1์๊ฐ ์ง์คํด์ ํ๋๋ก ๋ ธ๋ ฅํด์ผ๊ฒ ๋ค.
728x90
'CodingTest > Python' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
BOJ_1676 : ํฉํ ๋ฆฌ์ผ 0์ ๊ฐ์ (0) | 2022.08.21 |
---|---|
BOJ_18111 : ๋ง์ธํฌ๋ํํธ (0) | 2022.08.21 |
BOJ_2108 : ํต๊ณํ (0) | 2022.08.18 |
BOJ_10866 : ๋ฑ (0) | 2022.08.17 |
BOJ_15828 : Router (0) | 2022.08.16 |