Skip to content

Commit 7233006

Browse files
authored
Merge pull request #1996 from AlgorithmWithGod/JHLEE325
[20260306] BOJ / G3 / 선물 전달 / 이준희
2 parents 1045fed + 41daeee commit 7233006

2 files changed

Lines changed: 75 additions & 0 deletions

File tree

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
```java
2+
import java.io.*;
3+
import java.util.*;
4+
5+
public class Main {
6+
7+
static class Node {
8+
Map<String, Node> children = new TreeMap<>();
9+
}
10+
11+
public static void main(String[] args) throws IOException {
12+
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
13+
int N = Integer.parseInt(br.readLine());
14+
15+
Node root = new Node();
16+
17+
for (int i = 0; i < N; i++) {
18+
StringTokenizer st = new StringTokenizer(br.readLine());
19+
int K = Integer.parseInt(st.nextToken());
20+
21+
Node current = root;
22+
for (int j = 0; j < K; j++) {
23+
String food = st.nextToken();
24+
current.children.putIfAbsent(food, new Node());
25+
current = current.children.get(food);
26+
}
27+
}
28+
29+
print(root, 0);
30+
}
31+
32+
static void print(Node node, int d) {
33+
for (String key : node.children.keySet()) {
34+
for (int i = 0; i < d; i++) {
35+
System.out.print("--");
36+
}
37+
System.out.println(key);
38+
39+
print(node.children.get(key), d + 1);
40+
}
41+
}
42+
}
43+
```
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
```java
2+
import java.io.*;
3+
import java.util.*;
4+
5+
public class Main {
6+
public static void main(String[] args) throws Exception {
7+
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
8+
int N = Integer.parseInt(br.readLine());
9+
10+
if (N == 1) {
11+
System.out.println(0);
12+
return;
13+
}
14+
if (N == 2) {
15+
System.out.println(1);
16+
return;
17+
}
18+
19+
long[] dp = new long[N + 1];
20+
long mod = 1000000000;
21+
22+
dp[1] = 0;
23+
dp[2] = 1;
24+
25+
for (int i = 3; i <= N; i++) {
26+
dp[i] = (i - 1) * (dp[i - 1] + dp[i - 2]) % mod;
27+
}
28+
29+
System.out.println(dp[N]);
30+
}
31+
}
32+
```

0 commit comments

Comments
 (0)