Skip to content

Commit e67299d

Browse files
Revert "Revert "feat: 문제풀이 추가""
This reverts commit f1c9087.
1 parent f1c9087 commit e67299d

File tree

109 files changed

+1118
-770
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

109 files changed

+1118
-770
lines changed

.gitignore

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ build/
55
!**/src/test/**/build/
66

77
### IntelliJ IDEA ###
8-
.idea/*
8+
.idea/
99
*.iws
1010
*.iml
1111
*.ipr
@@ -36,4 +36,6 @@ bin/
3636
.vscode/
3737

3838
### Mac OS ###
39-
.DS_Store
39+
.DS_Store
40+
.idea/workspace.xml
41+
.idea/workspace.xml

.idea/aws.xml

Lines changed: 0 additions & 11 deletions
This file was deleted.

.idea/gradle.xml

Lines changed: 0 additions & 19 deletions
This file was deleted.

.idea/jpa-buddy.xml

Lines changed: 0 additions & 6 deletions
This file was deleted.

.idea/misc.xml

Lines changed: 0 additions & 13 deletions
This file was deleted.

.idea/sonarlint/issuestore/index.pb

Whitespace-only changes.

.idea/vcs.xml

Lines changed: 0 additions & 6 deletions
This file was deleted.

.idea/workspace.xml

Lines changed: 0 additions & 626 deletions
This file was deleted.

src/main/java/sgyj/Main.java

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,31 @@
11
package sgyj;
22

3+
import java.util.ArrayList;
4+
import java.util.List;
5+
36
public class Main {
47

8+
59
public static void main ( String[] args ) {
6-
System.out.println( "Hello world!" );
10+
11+
int[] array = new int[] {8, 5, 6, 2, 4};
12+
for(int i=1; i<array.length; i++) {
13+
int temp = array[i];
14+
for(int j=i-1; j >= 0; j--) {
15+
int compare = array[j];
16+
if(compare <= temp)break;
17+
array[j+1] = compare;
18+
array[j] = temp;
19+
}
20+
}
21+
22+
List<String> objects = new ArrayList<>();
23+
24+
for(int i=0; i< array.length; i++) {
25+
System.out.println(array[i]);
26+
}
27+
728
}
29+
30+
831
}
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
package sgyj.backjun.seunggu;
2+
3+
import java.io.BufferedReader;
4+
import java.io.IOException;
5+
import java.io.InputStreamReader;
6+
import java.util.Arrays;
7+
8+
public class Main1182 {
9+
10+
private static int answer;
11+
public static void main(String[] args) {
12+
try( BufferedReader reader = new BufferedReader(new InputStreamReader(System.in))) {
13+
String[] lines = reader.readLine().split(" ");
14+
int sum = Integer.parseInt(lines[1]);
15+
answer = 0;
16+
int[] array = Arrays.stream(reader.readLine().split(" ")).mapToInt(Integer::parseInt).toArray();
17+
dfs(0, 0, sum, array);
18+
System.out.println(sum == 0? answer-1 : answer);
19+
} catch (IOException e) {
20+
e.printStackTrace();
21+
}
22+
}
23+
24+
static void dfs(int number, int total, int sum, int[] array) {
25+
if(number == array.length-1) {
26+
if(total == sum) answer++;
27+
return;
28+
}
29+
dfs(number+1, total + array[number], sum, array);
30+
dfs(number+1, total, sum, array);
31+
32+
}
33+
34+
}
Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
package sgyj.backjun.seunggu;
2+
3+
import java.io.BufferedReader;
4+
import java.io.InputStreamReader;
5+
import java.io.IOException;
6+
import java.util.Arrays;
7+
8+
public class Main12865 {
9+
10+
private static int max;
11+
private static int count;
12+
public static void main ( String[] args ) {
13+
try( BufferedReader reader = new BufferedReader(new InputStreamReader( System.in))) {
14+
int[] numbers = Arrays.stream( reader.readLine().split( " ")).mapToInt( Integer::parseInt).toArray();
15+
max = numbers[1];
16+
count = numbers[0];
17+
Item[] items = getItems( reader, count );
18+
System.out.println( solution( items ));
19+
System.out.println(solution2( items ));
20+
}catch (IOException e) {
21+
e.printStackTrace();
22+
}
23+
}
24+
25+
static int solution2( Item[] items ) {
26+
int[] dp = new int[max+1];
27+
Arrays.fill( dp, Integer.MIN_VALUE );
28+
dp[0] = 0;
29+
for(int i=1; i<items.length; i++) {
30+
Item item = items[i];
31+
for(int j=max; j >= item.weight; j--) {
32+
dp[j] = Math.max( dp[j], dp[j-item.weight] + item.value );
33+
}
34+
}
35+
System.out.println( Arrays.toString( dp ) );
36+
return dp[max];
37+
}
38+
39+
private static int solution ( Item[] items ) {
40+
int[][] bags = new int[count+1][max+1];
41+
42+
for( int i=1; i<items.length; i++) {
43+
Item item = items[i];
44+
for(int j=1; j<=max; j++) {
45+
if(j >= item.weight) {
46+
bags[i][j] = Math.max(bags[i-1][j - item.weight] + item.value, bags[i-1][j]) ;
47+
} else {
48+
bags[i][j] = bags[i -1][j];
49+
}
50+
}
51+
}
52+
System.out.println( Arrays.deepToString( bags ) );
53+
return bags[count][max];
54+
}
55+
56+
private static Item[] getItems ( BufferedReader reader, int count ) throws IOException {
57+
Item[] items = new Item[count+1];
58+
for(int i=1; i <= count; i++) {
59+
int[] item = Arrays.stream( reader.readLine().split( " " ) ).mapToInt( Integer::parseInt ).toArray();
60+
items[i] = Item.of(item[0], item[1]);
61+
}
62+
return items;
63+
}
64+
65+
static class Item implements Comparable<Item>{
66+
67+
private final int weight;
68+
private final int value;
69+
70+
private Item ( int weight, int value ) {
71+
this.weight = weight;
72+
this.value = value;
73+
}
74+
75+
public static Item of ( int weight, int value ) {
76+
return new Item( weight, value );
77+
}
78+
79+
@Override
80+
public int compareTo( Item b) {
81+
return this.weight - b.weight;
82+
}
83+
}
84+
85+
86+
87+
}
Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
package sgyj.backjun.seunggu;
2+
3+
import java.io.BufferedReader;
4+
import java.io.IOException;
5+
import java.io.InputStreamReader;
6+
import java.util.ArrayDeque;
7+
import java.util.Arrays;
8+
import java.util.Deque;
9+
10+
public class Main14791 {
11+
12+
13+
public static void main(String[] args) {
14+
try(BufferedReader reader = new BufferedReader(new InputStreamReader(System.in))) {
15+
int result = 0;
16+
int[] array = Arrays.stream(reader.readLine().split(" ")).mapToInt(Integer::parseInt).toArray();
17+
int[] rains = Arrays.stream(reader.readLine().split(" ")).mapToInt(Integer::parseInt).toArray();
18+
Deque<Integer> deque = new ArrayDeque<>();
19+
int startIndex = 0;
20+
int height = rains[startIndex];
21+
for(int i=0; i<rains.length; i++) {
22+
if(height <= rains[i]) {
23+
height = rains[i];
24+
startIndex = i;
25+
} else {
26+
break;
27+
}
28+
}
29+
int end = startIndex;
30+
for(int i=startIndex; i<rains.length; i++) {
31+
if(height <= rains[i]) {
32+
result += calculateRain(deque, height);
33+
height = rains[i];
34+
end = i;
35+
deque = new ArrayDeque<>();
36+
} else {
37+
deque.add(rains[i]);
38+
}
39+
}
40+
deque = new ArrayDeque<>();
41+
startIndex = rains.length-1;
42+
height = rains[startIndex];
43+
for(int i=rains.length-1; i >= 0; i--) {
44+
if(height <= rains[i]) {
45+
height = rains[i];
46+
startIndex = i;
47+
} else {
48+
break;
49+
}
50+
}
51+
52+
for(int i=startIndex; i >= end; i--) {
53+
if(height <= rains[i]) {
54+
result += calculateRain(deque, height);
55+
height = rains[i];
56+
deque = new ArrayDeque<>();
57+
} else {
58+
deque.add(rains[i]);
59+
}
60+
}
61+
62+
63+
System.out.println(result);
64+
}catch (IOException e) {
65+
e.printStackTrace();
66+
}
67+
}
68+
69+
private static int calculateRain(Deque<Integer> deque, int height) {
70+
int answer = 0;
71+
while(!deque.isEmpty()) {
72+
answer += (height - deque.pop());
73+
}
74+
return answer;
75+
}
76+
77+
}
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
package sgyj.backjun.seunggu;
2+
3+
import java.io.BufferedReader;
4+
import java.io.IOException;
5+
import java.io.InputStreamReader;
6+
7+
public class Main15649 {
8+
9+
public static void main(String[] args) {
10+
try( BufferedReader reader = new BufferedReader(new InputStreamReader(System.in))) {
11+
String[] lines = reader.readLine().split(" ");
12+
int n = Integer.parseInt(lines[0]);
13+
int m = Integer.parseInt(lines[1]);
14+
int[] combination = new int[m+1];
15+
boolean[] visited = new boolean[n+ 1];
16+
StringBuilder stringBuilder = new StringBuilder();
17+
dfs(0,n, m, combination, visited, stringBuilder);
18+
System.out.println(stringBuilder);
19+
} catch (IOException e) {
20+
e.printStackTrace();
21+
}
22+
}
23+
24+
private static void dfs(int number, int depth, int limit, int[] combination, boolean [] visited, StringBuilder stringBuilder) {
25+
if(number == limit) {
26+
for (int i =0; i < number; i++) {
27+
stringBuilder.append(combination[i]).append(" ");
28+
}
29+
stringBuilder.append("\n");
30+
return;
31+
}
32+
for(int i=1; i<= depth; i++) {
33+
if(!visited[i]) {
34+
visited[i] = true;
35+
combination[number] = i;
36+
dfs(number+1, depth, limit, combination, visited, stringBuilder);
37+
visited[i] = false;
38+
}
39+
}
40+
}
41+
42+
}
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
package sgyj.backjun.seunggu;
2+
3+
import java.io.BufferedReader;
4+
import java.io.IOException;
5+
import java.io.InputStreamReader;
6+
7+
public class Main15650 {
8+
9+
public static void main(String[] args) {
10+
try( BufferedReader reader = new BufferedReader(new InputStreamReader(System.in))) {
11+
String[] lines = reader.readLine().split(" ");
12+
int n = Integer.parseInt(lines[0]);
13+
int m = Integer.parseInt(lines[1]);
14+
int[] combination = new int[m];
15+
StringBuilder stringBuilder = new StringBuilder();
16+
dfs(1, 0,n, m, combination, stringBuilder);
17+
System.out.println(stringBuilder);
18+
} catch (IOException e) {
19+
e.printStackTrace();
20+
}
21+
}
22+
23+
private static void dfs(int start, int number, int depth, int limit, int[] combination, StringBuilder stringBuilder) {
24+
if(number == limit) {
25+
for (int i : combination) {
26+
stringBuilder.append(i).append(" ");
27+
}
28+
stringBuilder.append("\n");
29+
return;
30+
}
31+
for(int i=start; i<= depth; i++) {
32+
combination[number] = i;
33+
dfs(i+1, number+1, depth, limit, combination, stringBuilder);
34+
}
35+
}
36+
37+
}

0 commit comments

Comments
 (0)