Skip to content

Commit 9aac077

Browse files
authored
Merge pull request #152 from yeongleej/main
[11์ฃผ์ฐจ] ์ด์ง€์˜
2 parents 748de6b + 819c73a commit 9aac077

File tree

9 files changed

+618
-0
lines changed

9 files changed

+618
-0
lines changed
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
package day1120;
2+
3+
import java.io.*;
4+
import java.util.*;
5+
6+
public class JY_1052 {
7+
8+
public static void main(String[] args) throws IOException{
9+
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
10+
StringTokenizer st = new StringTokenizer(br.readLine());
11+
12+
int N = Integer.parseInt(st.nextToken());
13+
int K = Integer.parseInt(st.nextToken());
14+
15+
if(K >= N) {
16+
System.out.println(0);
17+
return;
18+
}
19+
20+
// N์€ 2^i๊ฐ€ ๋˜์–ด์•ผ ํ•จ
21+
for(int k=0; k<K-1; k++) {
22+
int i = 0;
23+
while(Math.pow(2, i) < N) {
24+
i++;
25+
}
26+
N -= Math.pow(2, (i-1));
27+
28+
if(N == 0) {
29+
System.out.println(0);
30+
return;
31+
}
32+
}
33+
34+
35+
int i = 0;
36+
while(Math.pow(2, i) < N) {
37+
i++;
38+
}
39+
int ans = (int)Math.pow(2, i) - N;
40+
System.out.println(ans);
41+
}
42+
43+
}
Lines changed: 109 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,109 @@
1+
package day1119;
2+
3+
import java.io.*;
4+
import java.util.*;
5+
6+
public class JY_1716 {
7+
8+
static int N, M;
9+
static int[] d, parent, distance;
10+
static boolean[] c;
11+
static List<Node>[] g;
12+
static class Node {
13+
int n, dist;
14+
15+
public Node(int n, int dist) {
16+
super();
17+
this.n = n;
18+
this.dist = dist;
19+
}
20+
21+
@Override
22+
public String toString() {
23+
return "Node [n=" + n + ", dist=" + dist + "]";
24+
}
25+
26+
}
27+
28+
public static void main(String[] args) throws IOException{
29+
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
30+
StringTokenizer st = new StringTokenizer(br.readLine());
31+
32+
N = Integer.parseInt(st.nextToken());
33+
34+
// ๋ถ€๋ชจ ๋…ธ๋“œ ์ •๋ณด ๋ฐฐ์—ด
35+
parent = new int[N+1];
36+
37+
// ๊นŠ์ด ์ •๋ณด ๋ฐฐ์—ด
38+
d = new int[N+1];
39+
40+
// ๊นŠ์ด ๊ณ„์‚ฐ ์—ฌ๋ถ€ ๋ฐฐ์—ด
41+
c = new boolean[N+1];
42+
43+
// ๋ฃจํŠธ๋…ธ๋“œ๋กœ ๋ถ€ํ„ฐ์˜ ๊ฑฐ๋ฆฌ
44+
distance = new int[N+1];
45+
46+
g = new ArrayList[N+1];
47+
for(int i=0; i<N+1; i++) {
48+
g[i] = new ArrayList<>();
49+
}
50+
51+
for(int i=0; i<N-1; i++) {
52+
st = new StringTokenizer(br.readLine());
53+
int a = Integer.parseInt(st.nextToken());
54+
int b = Integer.parseInt(st.nextToken());
55+
int dist = Integer.parseInt(st.nextToken());
56+
g[a].add(new Node(b, dist));
57+
g[b].add(new Node(a, dist));
58+
}
59+
60+
// ๊นŠ์ด ๊ตฌํ•˜๊ธฐ
61+
dfs(1, 0, 0);
62+
63+
st = new StringTokenizer(br.readLine());
64+
M = Integer.parseInt(st.nextToken());
65+
66+
StringBuilder sb = new StringBuilder();
67+
for(int i=0; i<M; i++) {
68+
st = new StringTokenizer(br.readLine());
69+
int n1 = Integer.parseInt(st.nextToken());
70+
int n2 = Integer.parseInt(st.nextToken());
71+
int p = lca(n1, n2);
72+
73+
int ans = distance[n1]+distance[n2] - 2*distance[p];
74+
75+
sb.append(ans+"\n");
76+
}
77+
78+
System.out.println(sb.toString());
79+
80+
}
81+
public static void dfs(int x, int depth, int dist) {
82+
c[x] = true;
83+
d[x] = depth;
84+
distance[x] = dist;
85+
86+
for(Node next: g[x]) {
87+
if(c[next.n]) continue;
88+
89+
parent[next.n] = x;
90+
dfs(next.n, depth+1, dist+next.dist);
91+
}
92+
}
93+
public static int lca(int a, int b) {
94+
while(d[a] != d[b]) {
95+
if(d[a] > d[b]) {
96+
a = parent[a];
97+
} else {
98+
b = parent[b];
99+
}
100+
}
101+
102+
while(a != b) {
103+
a = parent[a];
104+
b = parent[b];
105+
}
106+
return a;
107+
}
108+
109+
}
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
package day1122;
2+
3+
import java.io.*;
4+
import java.util.*;
5+
6+
public class JY_15831 {
7+
8+
public static void main(String[] args) throws IOException{
9+
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
10+
StringTokenizer st = new StringTokenizer(br.readLine());
11+
12+
int N = Integer.parseInt(st.nextToken());
13+
int B = Integer.parseInt(st.nextToken());
14+
int W = Integer.parseInt(st.nextToken());
15+
16+
String srr = br.readLine();
17+
18+
int s = 0;
19+
int e = 0;
20+
int bc = 0;
21+
int wc = 0;
22+
int ans = 0;
23+
24+
while(e < N) {
25+
// ์กฐ์•ฝ๋Œ ๊ฐœ์ˆ˜ ์นด์šดํŠธ
26+
if(srr.charAt(e) == 'B') bc++;
27+
else wc++;
28+
29+
// ๊ฒ€์€ ์กฐ์•ฝ๋Œ์ด B๊ฐœ ๋ณด๋‹ค ๋งŽ์œผ๋ฉด ์‹œ์ž‘์  ์ฆ๊ฐ€๋กœ ๊ตฌ๊ฐ„ ๊ฐ์†Œ์‹œํ‚ค๊ธฐ
30+
if(bc > B) {
31+
if(srr.charAt(s)=='B') bc--;
32+
else wc--;
33+
s++;
34+
}
35+
36+
// ์ค€ํ‘œ๊ฐ€ ๋งŒ์กฑํ•˜๋Š” ์กฐ์•ฝ๋Œ ๊ฐœ์ˆ˜
37+
if(wc >= W && bc <= B) {
38+
ans = Math.max(ans, (e-s)+1);
39+
}
40+
41+
e++;
42+
}
43+
System.out.println(ans);
44+
45+
}
46+
47+
}
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
package day1122;
2+
3+
import java.io.*;
4+
import java.util.*;
5+
6+
public class JY_19939 {
7+
8+
public static void main(String[] args) throws IOException{
9+
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
10+
StringTokenizer st = new StringTokenizer(br.readLine());
11+
12+
int N = Integer.parseInt(st.nextToken());
13+
int K = Integer.parseInt(st.nextToken());
14+
15+
int[] arr = new int[K];
16+
int cnt = 0;
17+
// ์ดˆ๊ธฐ๊ฐ’ : 1๋ถ€ํ„ฐ K๊ฐœ๊นŒ์ง€ ๋ถ„๋ฐฐ
18+
for(int i=0; i<K; i++) {
19+
arr[i] = (i+1);
20+
cnt += arr[i];
21+
}
22+
23+
if(cnt > N) {
24+
System.out.println(-1);
25+
return;
26+
}
27+
28+
N -= cnt;
29+
int val = N / K;
30+
for(int i=0; i<K; i++) {
31+
arr[i] += val;
32+
}
33+
if(N % K != 0) {
34+
int re = N % K;
35+
36+
// ๋งจ ๋’ค๋ถ€ํ„ฐ 1์”ฉ ์ฆ๊ฐ€ํ•˜๊ธฐ
37+
int idx = K-1;
38+
while(re > 0) {
39+
arr[idx]++;
40+
idx--;
41+
re--;
42+
}
43+
}
44+
45+
// System.out.println(Arrays.toString(arr));
46+
System.out.println(arr[K-1]-arr[0]);
47+
48+
}
49+
50+
}
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
package day1121;
2+
3+
import java.io.*;
4+
import java.util.*;
5+
6+
public class JY_9466 {
7+
8+
static int T, N;
9+
static int[] g;
10+
static boolean[] visited, finished;
11+
static int cnt;
12+
13+
public static void main(String[] args) throws IOException {
14+
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
15+
StringTokenizer st = new StringTokenizer(br.readLine());
16+
17+
T = Integer.parseInt(st.nextToken());
18+
19+
StringBuilder sb = new StringBuilder();
20+
for(int t=0; t<T; t++) {
21+
st = new StringTokenizer(br.readLine());
22+
N = Integer.parseInt(st.nextToken());
23+
g = new int[N+1];
24+
25+
st = new StringTokenizer(br.readLine());
26+
for(int i=1; i<N+1; i++) {
27+
g[i] = Integer.parseInt(st.nextToken());
28+
}
29+
30+
visited = new boolean[N+1];
31+
finished = new boolean[N+1];
32+
cnt = N;
33+
for(int i=1; i<N+1; i++) {
34+
if(visited[i]) continue;
35+
dfs(i);
36+
}
37+
38+
sb.append(cnt+"\n");
39+
40+
}
41+
System.out.println(sb.toString());
42+
43+
}
44+
public static void dfs(int now) {
45+
visited[now] = true;
46+
47+
int next = g[now];
48+
49+
// ์•„์ง ๋ฐฉ๋ฌธํ•˜์ง€ ์•Š์€ ๊ณณ
50+
if(!visited[next]) {
51+
dfs(next);
52+
}
53+
// ์ˆœํ™˜ ๋ฐœ์ƒ
54+
else {
55+
// ์‚ฌ์ดํด ์‹œ์ž‘์ ์œผ๋กœ ๋Œ์•„๊ฐ
56+
while(!finished[next]) {
57+
finished[next] = true;
58+
next = g[next];
59+
cnt--;
60+
}
61+
62+
}
63+
finished[now] = true;
64+
65+
}
66+
67+
}

0 commit comments

Comments
ย (0)