๐ ์ ์ถ
import java.util.Scanner;
public class Main {
static int[] arr = {1, 2, 3};
static int N;
static int answer;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int tc = sc.nextInt();
for (int i = 0; i < tc; i++) {
N = sc.nextInt();
answer = 0;
dfs(0);
System.out.println(answer);
}
}
public static void dfs(int sum) {
if (sum >= N) {
if (sum == N) {
answer++;
}
return;
}
for (int i : arr) {
dfs(sum + i);
}
}
}
โ ํ์ด
๋ฐฑํธ๋ํน ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ์ฌ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์์์ต๋๋ค. ๋ฐฑํธ๋ํน์ ํตํด ๊ฐ๋ฅํ ๋ชจ๋ ์กฐํฉ์ ์๋ํ์๊ณ ์ฃผ์ด์ง ์ `N`๊ณผ ๊ฐ์ ๊ฒฝ์ฐ ์นด์ดํธ ํ๋ ๋ฐฉ์์ผ๋ก ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์์์ต๋๋ค.
ํต์ฌ ์์ด๋์ด
- DFS
- ๋งค ํธ์ถ๋ง๋ค ํ์ฌ๊น์ง์ ํฉ๊ณ๋ฅผ ์ ์ฅํ์์ต๋๋ค.
- ๋ง์ฝ ํ์ฌ ํฉ๊ณ๊ฐ `N`๋ณด๋ค ํฌ๋ค๋ฉด ๊ทธ ๊ฒฝ์ฐ๋ ๋ ์ด์ ์งํํ ํ์๊ฐ ์์ผ๋ฏ๋ก ๋ฆฌํดํฉ๋๋ค.
- ํ์ฌ ํฉ๊ณ๊ฐ `N`๊ณผ ๊ฐ์ผ๋ฉด ์ ์ํ ์กฐํฉ์ ์ฐพ์๋ค๊ณ ํ๋จํ์ฌ `answer`์ ์ฆ๊ฐํ์์ต๋๋ค.
- ๋ฐฑํธ๋ํน
- ๊ฐ๊ฐ์ ์ฌ๊ท ํธ์ถ์์ 1, 2, 3 ์ค ํ๋๋ฅผ ๋ํ์ฌ ์๋ก์ด ํฉ๊ณ๋ฅผ ์์ฑํฉ๋๋ค.
- ์ฌ๊ท์ ์ผ๋ก ํธ์ถํ์ฌ ๋ชจ๋ ๊ฐ๋ฅํ ํฉ๊ณ ์กฐํฉ์ ๋ง๋ญ๋๋ค.
- ๊ธฐ์ ์กฐ๊ฑด
- ํ์ฌ ํฉ๊ณ๊ฐ N๋ณด๋ค ํฌ๋ฉด ๋ ์ด์ ํ์ํ์ง ์๊ณ ๋์๊ฐ๋๋ค.
- ํ์ฌ ํฉ๊ณ๊ฐ ์ ํํ N์ ๋๋ฌํ๋ฉด ๊ฐ๋ฅํ ์กฐํฉ์ผ๋ก ์ธ์ ํ์ฌ ์นด์ดํธ๋ฅผ ์ฆ๊ฐ์ํต๋๋ค.
'PS > ๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค | 10828] ์คํ - Java (0) | 2024.08.16 |
---|---|
[๋ฐฑ์ค | 10974] ๋ชจ๋ ์์ด- Java (0) | 2024.08.15 |
[๋ฐฑ์ค | 1182] ๋ถ๋ถ์์ด์ ํฉ - Java (0) | 2024.08.14 |
[๋ฐฑ์ค | 15630] N๊ณผ M(2) - Java (0) | 2024.08.14 |
[๋ฐฑ์ค | 15649] N๊ณผ M(1) - Java (0) | 2024.08.14 |