Skip to content

Commit fb79cd1

Browse files
committed
1031
1 parent 08829fe commit fb79cd1

File tree

10 files changed

+212
-46
lines changed

10 files changed

+212
-46
lines changed

.idea/modules.xml

Lines changed: 4 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<module type="JAVA_MODULE" version="4">
3+
<component name="NewModuleRootManager" inherit-compiler-output="true">
4+
<exclude-output />
5+
<content url="file://$MODULE_DIR$">
6+
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
7+
</content>
8+
<orderEntry type="inheritedJdk" />
9+
<orderEntry type="sourceFolder" forTests="false" />
10+
</component>
11+
</module>
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
//시간초과
2+
import java.util.Scanner;
3+
4+
public class Main {
5+
public static void main(String[] args) {
6+
Scanner sc = new Scanner(System.in);
7+
String parent = sc.nextLine();
8+
String patten = sc.nextLine();
9+
int parent_len = parent.length();
10+
int patten_len = patten.length();
11+
long parent_hash = 0;
12+
long patten_hash = 0;
13+
long power = 1;
14+
int cnt = 0;
15+
16+
for (int i = 0; i < parent_len - patten_len; i++) {
17+
if (i == 0) {
18+
for (int j = 0; j < patten_len; j++) {
19+
parent_hash += parent.charAt(patten_len - 1 - j) * power;
20+
patten_hash += patten.charAt(patten_len - 1 - j) * power;
21+
if (j < patten_len - 1) {
22+
power *= 2;
23+
}
24+
}
25+
} else {
26+
parent_hash = 2 * (parent_hash - (parent.charAt(i - 1) * power)) + parent.charAt(patten_len - 1 + i);
27+
}
28+
if (parent_hash == patten_hash) {
29+
boolean isSame = true;
30+
for (int j = 0; j < patten_len; j++) {
31+
if (parent.charAt(i + j) != patten.charAt(j)) {
32+
isSame = false;
33+
}
34+
}
35+
if (isSame) {
36+
cnt = 1;
37+
}
38+
}
39+
}
40+
41+
42+
System.out.println(cnt);
43+
44+
45+
}
46+
}

BOJ/gold/BOJ1107/BOJ1107.iml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<module type="JAVA_MODULE" version="4">
3+
<component name="NewModuleRootManager" inherit-compiler-output="true">
4+
<exclude-output />
5+
<content url="file://$MODULE_DIR$">
6+
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
7+
</content>
8+
<orderEntry type="inheritedJdk" />
9+
<orderEntry type="sourceFolder" forTests="false" />
10+
</component>
11+
</module>

BOJ/gold/BOJ1107/src/Main.java

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
import java.io.BufferedReader;
2+
import java.io.IOException;
3+
import java.io.InputStreamReader;
4+
import java.util.Arrays;
5+
import java.util.StringTokenizer;
6+
7+
import static java.lang.Math.abs;
8+
9+
public class Main {
10+
static int now = 100;
11+
public static void main(String[] args) throws IOException {
12+
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
13+
String N= br.readLine();
14+
String [] target = N.split("");
15+
int M = Integer.parseInt(br.readLine());
16+
int [] breakButton = new int[10];
17+
StringTokenizer st = new StringTokenizer(br.readLine());
18+
for (int i = 0; i < M; i++) {
19+
int button=Integer.parseInt(st.nextToken());
20+
breakButton[button]=1;
21+
}
22+
int cnt =abs(Integer.parseInt(N)-now);
23+
int len = target.length;
24+
//최대값은 문제에서 500000이라고 되어있으나 리모콘이 9를 제외하고 모두 고장났다면
25+
// 999999를 눌러서 찾는 경우도 포함되어야 하므로 최대값을 999999으로 설정한다
26+
for (int i = 0; i <=999999; i++) {
27+
String [] NowNum = String.valueOf(i).split("");
28+
boolean check =false;
29+
for (int j = 0; j < NowNum.length; j++) {
30+
if(breakButton[Integer.parseInt(NowNum[j])]==1){
31+
check=true;
32+
break;
33+
}
34+
}
35+
if(!check){
36+
int min= abs(Integer.parseInt(N)-i)+NowNum.length;
37+
cnt=Math.min(cnt,min);
38+
}
39+
}
40+
System.out.println(cnt);
41+
42+
43+
44+
45+
46+
47+
48+
}
49+
}

BOJ/gold/BOJ1916/src/Main.java

Lines changed: 41 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
21
import java.io.BufferedReader;
32
import java.io.IOException;
43
import java.io.InputStreamReader;
@@ -7,72 +6,69 @@
76
import java.util.PriorityQueue;
87
import java.util.StringTokenizer;
98

10-
//클래스를 통해 객체 생성시 오름차순 정렬
11-
class Node implements Comparable<Node> {
9+
class Node implements Comparable<Node>{
1210
int end;
1311
int weight;
14-
15-
public Node(int end, int weight) {
16-
this.end = end;
17-
this.weight = weight;
12+
Node(int end, int weight){
13+
this.end=end;
14+
this.weight=weight;
1815
}
1916

2017
@Override
21-
public int compareTo(Node o) {
22-
return weight - o.weight;
18+
public int compareTo(Node o){
19+
return weight-o.weight;
2320
}
2421
}
25-
2622
public class Main {
27-
static ArrayList<ArrayList<Node>> arr;
28-
static int[] dist;
2923

24+
static ArrayList<ArrayList<Node>> graph;
25+
static int [] distance;
3026
public static void main(String[] args) throws IOException {
31-
32-
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
33-
int N = Integer.parseInt(br.readLine());
34-
int M = Integer.parseInt(br.readLine());
35-
arr = new ArrayList<>();
36-
for (int i = 0; i <= N; i++) {
37-
arr.add(new ArrayList<>());
27+
BufferedReader br =new BufferedReader(new InputStreamReader(System.in));
28+
int N=Integer.parseInt(br.readLine());
29+
int M=Integer.parseInt(br.readLine());
30+
graph=new ArrayList<>();
31+
for (int i = 0; i < N+1; i++) {
32+
graph.add(new ArrayList<>());
3833
}
3934
for (int i = 0; i < M; i++) {
40-
StringTokenizer st = new StringTokenizer(br.readLine());
41-
int start = Integer.parseInt(st.nextToken());
42-
int end = Integer.parseInt(st.nextToken());
43-
int weight = Integer.parseInt(st.nextToken());
44-
arr.get(start).add(new Node(end, weight));
35+
StringTokenizer st =new StringTokenizer(br.readLine());
36+
int start =Integer.parseInt(st.nextToken());
37+
int end =Integer.parseInt(st.nextToken());
38+
int weight=Integer.parseInt(st.nextToken());
39+
graph.get(start).add(new Node(end, weight));
4540
}
41+
StringTokenizer st =new StringTokenizer(br.readLine());
42+
int StartPoint=Integer.parseInt(st.nextToken());
43+
int EndPoint=Integer.parseInt(st.nextToken());
4644

47-
StringTokenizer st = new StringTokenizer(br.readLine());
48-
int start = Integer.parseInt(st.nextToken());
49-
int end = Integer.parseInt(st.nextToken());
50-
dist = new int[N + 1];
51-
Arrays.fill(dist,Integer.MAX_VALUE);
52-
int result = dijkstra(start, end, N);
45+
distance=new int [N+1];
46+
Arrays.fill(distance,Integer.MAX_VALUE);
47+
int result=dijkstra(StartPoint,EndPoint, N);
5348
System.out.println(result);
49+
50+
51+
52+
5453
}
5554

5655
public static int dijkstra(int start, int end, int N) {
57-
PriorityQueue<Node> q = new PriorityQueue<>();
58-
boolean[] visited = new boolean[N + 1];
59-
q.offer(new Node(start, 0));
60-
dist[start] = 0;
56+
PriorityQueue<Node> pq = new PriorityQueue<>();
57+
boolean [] visited = new boolean[N+1];
58+
distance[start]=0;
6159

62-
while (!q.isEmpty()) {
63-
Node nowNode = q.poll();
64-
int now = nowNode.end;
65-
if (!visited[now]) {
66-
visited[now] = true;
67-
for (Node node : arr.get(now)) {
68-
if (!visited[node.end] && dist[node.end] > dist[now] + node.weight) {
69-
dist[node.end] = dist[now] + node.weight;
70-
q.add(new Node(node.end, dist[node.end]));
71-
}
60+
pq.add(new Node(start,0));
61+
while (!pq.isEmpty()){
62+
Node now=pq.poll();
63+
visited[now.end]=true;
64+
for(Node next : graph.get(now.end)){
65+
if(!visited[next.end]&&distance[next.end]>distance[now.end]+next.weight){
66+
distance[next.end]=distance[now.end]+next.weight;
67+
pq.add(new Node(next.end, distance[next.end]));
7268
}
7369
}
7470
}
75-
return dist[end];
71+
return distance[end];
7672
}
7773

7874
}

BOJ/silver/BOJ1654/BOJ1654.iml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<module type="JAVA_MODULE" version="4">
3+
<component name="NewModuleRootManager" inherit-compiler-output="true">
4+
<exclude-output />
5+
<content url="file://$MODULE_DIR$">
6+
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
7+
</content>
8+
<orderEntry type="inheritedJdk" />
9+
<orderEntry type="sourceFolder" forTests="false" />
10+
</component>
11+
</module>

BOJ/silver/BOJ1654/src/Main.java

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
import java.util.Arrays;
2+
import java.util.Scanner;
3+
4+
public class Main {
5+
public static void main(String[] args) {
6+
7+
Scanner sc =new Scanner(System.in);
8+
int K=sc.nextInt();
9+
long N=sc.nextInt();
10+
long [] len = new long [K];
11+
for (int i = 0; i <K; i++) {
12+
len[i]= sc.nextInt();
13+
}
14+
Arrays.sort(len);
15+
long left=1;
16+
long right=len[len.length-1];
17+
long total=0;
18+
while (left<=right){
19+
long mid = (left+right)/2;
20+
long cuttting =0;
21+
for (int i = 0; i < len.length; i++) {
22+
cuttting+=len[i]/mid;
23+
}
24+
if(cuttting<N){
25+
right=mid-1;
26+
}else{
27+
total=Math.max(total,mid);
28+
left=mid+1;
29+
}
30+
31+
}
32+
System.out.println(total);
33+
34+
35+
36+
37+
38+
}
39+
}

0 commit comments

Comments
 (0)