02-03 07:40
Recent Posts
Recent Comments
Tags
- python
- ํ์ด์
- ๋ฐ์ดํฐ๋ฒ ์ด์ค
- Naver Cloud
- Java
- API MarketPlace ๊ธ๋ก๋ฒ ์ํฌํฐ์ฆ
- ์๋ฐ
- ICT๋ฉํ ๋ง
- Spring
- JOBํ๊ณ
- appetizer
- linux
- RaspberryPi
- ICT
- ์คํฝ์ค๋น
- ์ด๋ธ์
- ํ์ด์๊ณต๋ชจ์
- TSQL
- ์๋์ด๋ ธ
- ํ๋ก๋ณด๋ ธ
- ํ์ด์ฌ
- ์คํฝ๋ ํ
- SQL
- ์กํ๊ณ
- DB
- ์จ์ผ๋ํ
- API๋ง์ผํ๋ ์ด์ค
- DATABASE
- ict๊ณต๋ชจ์
- mysql
- Today
- Total
miinsun
[Algorithm]์๊ณ ๋ฆฌ์ฆ ์๋ฐ_56 ์ต๋ ์ ์ ๊ตฌํ๊ธฐ(DFS) ๋ณธ๋ฌธ
Algorithm/Java
[Algorithm]์๊ณ ๋ฆฌ์ฆ ์๋ฐ_56 ์ต๋ ์ ์ ๊ตฌํ๊ธฐ(DFS)
miinsun 2022. 3. 2. 18:01
๐ฌ ๋ฌธ์ ์ค๋ช
์ด๋ฒ ์ ๋ณด์ฌ๋ฆผํผ์๋๋ํ์์ ์ข์ ์ฑ์ ์ ๋ด๊ธฐ ์ํ์ฌ ํ์๋ ์ ์๋์ด ์ฃผ์ N๊ฐ์ ๋ฌธ์ ๋ฅผ ํ๋ ค๊ณ ํฉ๋๋ค. ๊ฐ ๋ฌธ์ ๋ ๊ทธ๊ฒ์ ํ์์ ๋ ์ป๋ ์ ์์ ํธ๋๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ด ์ฃผ์ด์ง๊ฒ ๋ฉ๋๋ค. ์ ํ์๊ฐ M์์ N๊ฐ์ ๋ฌธ์ ์ค ์ต๋์ ์๋ฅผ ์ป์ ์ ์๋๋ก ํด์ผ ํฉ๋๋ค.
(ํด๋น๋ฌธ์ ๋ ํด๋น์๊ฐ์ด ๊ฑธ๋ฆฌ๋ฉด ํธ๋ ๊ฑธ๋ก ๊ฐ์ฃผํ๋ค, ํ ์ ํ๋น ํ๊ฐ๋ง ํ ์ ์์ต๋๋ค.)
๐จ ์ ์ถ๋ ฅ ์
์ ๋ ฅ - ์ฒซ ๋ฒ์งธ ์ค์ ๋ฌธ์ ์ ๊ฐ์N(1<=N<=20)๊ณผ ์ ํ ์๊ฐ M(10<=M<=300)์ด ์ฃผ์ด์ง๋๋ค.
๋ ๋ฒ์งธ ์ค๋ถํฐ N์ค์ ๊ฑธ์ณ ๋ฌธ์ ๋ฅผ ํ์์ ๋์ ์ ์์ ํธ๋๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ด ์ฃผ์ด์ง๋๋ค.
5 20
10 5
25 12
15 8
6 3
7 4
์ถ๋ ฅ - ์ฒซ ๋ฒ์งธ ์ค์ ์ ํ ์๊ฐ์์ ์ป์ ์ ์๋ ์ต๋ ์ ์๋ฅผ ์ถ๋ ฅํฉ๋๋ค.
โ
๐ป Solution.java
import java.util.*;
public class Main {
static int n, m, score, sum = 0;
static int max = Integer.MIN_VALUE;
public void DFS(int L, int score, int sum, int[][] arr) {
if(m < sum) return;
if(L == n) {
max = Math.max(max, score);
}
else {
DFS(L + 1, score + arr[L][0], sum + arr[L][1], arr);
DFS(L + 1, score, sum, arr);
}
}
public static void main(String[] args){
Main main = new Main();
Scanner sc = new Scanner(System.in);
n = sc.nextInt(); //๋ฌธ์ ๊ฐ์
m = sc.nextInt(); //์ ํ ์๊ฐ
int[][] arr = new int [n][2];
for(int i = 0; i < n; i++) {
for(int j = 0; j < 2; j++) {
arr[i][j] = sc.nextInt();
}
}
main.DFS(0, 0, 0, arr);
System.out.println(max);
sc.close();
return ;
}
}
'Algorithm > Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Comments