Tags
- Study
- ๊น์ด ์ฐ์ ํ์
- sort
- DP
- greedy
- ์๋ฎฌ๋ ์ด์
- CodingTest
- ๊ตฌํ
- PGM
- ๋ฐฑํธ๋ํน
- ์ํ
- queue
- ์ ๋ ฌ
- ๊ทธ๋ํ ์ด๋ก
- ๋ฌธ์์ด
- ์๋ฃ๊ตฌ์กฐ
- ๋๋น ์ฐ์ ํ์
- BOJ
- ๊ต์ฌ
- ๊ทธ๋ํ ํ์
- stack
- Python
- BFS
- dfs
- Dynamic Programming
- Java
- LV2
- ์ ์๋ก
- Brute Force Algorithm
- SpringBoot
Archives
๊ธฐ๋ก๋ฐฉ
BOJ_1548 : ๋ถ๋ถ ์ผ๊ฐ ์์ด ๋ณธ๋ฌธ
๐ธ ๋ฌธ์ ๋ถ์ ๐ธ
- ์ ๋ ฅ๋ฐ์ ๋ฆฌ์คํธ์ ์์๋ก ๋ง๋ค ์ ์๋ ์ผ๊ฐ ์์ด์ ์ต๋ ๊ธธ์ด๋ฅผ ์ถ๋ ฅํ๋ค.
- ๊ทธ๋ฆฌ๋์ ์ธ ๊ด์ ๊ณผ ๋ธ๋ฃจํธํฌ์ค์ ์ ๊ทผ์ด ๋ชจ๋ ํ์ํ๋ค.
- ์ ๋ ฅ๋ฐ์ ๋ฆฌ์คํธ๋ฅผ ์ค๋ฆ์ฐจ์ ์ ๋ ฌํ์๋, arr[i] + arr[i+1] > arr[n] ์ ๋ง์กฑํ๋ฉด i๋ถํฐ n ์ฌ์ด์ ๋ชจ๋ ์๋ค๋ ์ผ๊ฐ๊ด๊ณ์ด๋ค. (๊ทธ๋ฆฌ๋)
- ๊ฐ์ฅ ์์ด๋ ๊ฐ์ฅ ๋ค๋ฅผ ๋นผ๊ฐ๋ฉฐ ๊ฐ์ฅ ๊ธด ๋ถ๋ถ ์ผ๊ฐ ์์ด์ ์ฐพ๋๋ค. (๋ธ๋ฃจํธํฌ์ค)
- 0 ~ n-1 >> 1 ~ n-1 >> ... >> n-2 ~ n-1
- 1 ~ n-2 >> 2 ~ n-2 >> ... >> n-3 ~ n-2
- ์์๋ ๋ค์๊บผ ํ๋๋นผ๋ณด๊ณ ์์๊ฑฐ ํ๋ ๋นผ๋ณด๊ณ ..(๋ฐ๋ณต)
๐ธ ์ฝ๋ ๐ธ
n = int(input())
arr = list(map(int,input().split()))
arr.sort()
def solution(N, arr):
for n in range(N, 0, -1):
for i in range(N - n + 1):
print(n, i)
if n < 3 or arr[i]+arr[i+1] > arr[i+n-1]:
return n
print(solution(n, arr))
๐ธ ์ฝ๋ ํด์ ๐ธ
- ๋ค, ์ ์์ผ๋ก ์ธ๋ฑ์ค๋ฅผ ์ค์ฌ๊ฐ๋ณด๋ฉฐ ์ผ๊ฐ ์์ด์ธ์ง ํ์ธํ๋ค.
- ์ต์ด๋ก ๋ฐ๊ฒฌ๋ ์ผ๊ฐ ์์ด์ ๊ธธ์ด๊ฐ ์ต๋๊ฐ์ด๋ค.
๐ธ ์ค๋ต ์ฝ๋ ๐ธ
##########################################
# dfs๋ฅผ ์ฌ์ฉํ ํ์ด : ์๊ฐ์ด๊ณผ
##########################################
n = int(input())
arr = list(map(int,input().split()))
arr.sort()
answer = 0
before = -1
def triple(b):
for i in range(len(b)-1):
for j in range(i+1,len(b)):
for k in b:
if b[i]+b[j] <= k:
return False
return True
def dfs(d, b):
global answer
if n-d <= answer:
return
if triple(b):
if answer < n-d:
answer = n-d
return
for i in range(len(b)):
if b[i] == b[i-1]:
continue
temp = b[:]
temp.pop(i)
dfs(d+1, temp)
dfs(0, arr)
print(answer)
##########################################
๐ธ ์ฝ๋ ํด์ ๐ธ
- ์ ๋ง์ ์กฐํฉ์ dfs์ ์ธต์ ํ๋์ฉ ๋ด๋ ค๊ฐ๋ฉฐ ํ์ธํ๋ ์ฝ๋์ด๋ค.
- ์์ ๋ ๋ชจ๋ ์ ๋ต์ด ๋์ค์ง๋ง ์ ์ถ์ ์๊ฐ์ด๊ณผ๊ฐ ๋์จ๋ค.
๐ธ end ๐ธ
- ๋ธ๋ฃจํธํฌ์ค๋ผ๊ณ dfs ํ๋๋ง ๊ณ์ ํ์ฉํ๋ ค๊ณ ํ๋๋ ๋ฌธ์ ๋ฅผ ๋ถ์ํ๋๊ฑธ ๊ฐ๊ณผํ๊ฒ ๋ ๊ฒ ๊ฐ๋ค.
- dfs๋ก ์๊ฐ์ ๊ฐ๋ฅํ ์ค์ฌ๋ณด๋ ค๊ณ ํ์ง๋ง ํ๋ ์๋๊ฒ ๊ฐ์์ ๊ฒฐ๊ตญ ํ์ด ํฌ์คํ ์ ์ฐพ์๋ณด๊ฒ ๋์๋ค.
- ํ๊ทธ์ ๋ธ๋ฃจํธํฌ์ค์ ๊ทธ๋ฆฌ๋๊ฐ ๊ฐ์ด ์จ์์๋๋ฐ, ์ ๋ฒ์ ํ์๋ ๋ฌธ์ ์ฒ๋ผ ๋ ๊ฐ์ง ๋ฐฉ๋ฒ์ด ์๋ ์ค ์์๋๋ ๋ ๊ฐ๋
๋ชจ๋ ์ฌ์ฉํด์ผํ๋ ๋ฌธ์ ์๋ค. - ๋ฌธ์ ๋ถ์๋ถํฐ ์๋ชป ์ ๊ทผํ ์ผ์ด์ค์ธ๋ฐ, 1์๊ฐ ์ ํ์ ๋๊ณ ์ด๋ฐ์ ๋ฐ ์๋๋ฅผ ํ๋๊ฑธ ๊ฒ๋ด์ง ๋ง์์ผ๊ฒ ๋ค.
728x90
'CodingTest > Python' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
BOJ_1012 : ์ ๊ธฐ๋ ๋ฐฐ์ถ (0) | 2022.09.15 |
---|---|
Lv.2 : ํํ (0) | 2022.09.12 |
BOJ_2961 : ๋์์ด๊ฐ ๋ง๋ ๋ง์๋ ์์ (0) | 2022.09.10 |
BOJ_14620 : ๊ฝ๊ธธ (0) | 2022.09.10 |
BOJ_1037 : ์ฝ์ (0) | 2022.09.09 |