Skip to content

Commit 6426527

Browse files
Merge pull request #29 from algorithm-cote-study/Yeji/programmers
Yeji/programmers
2 parents 881a239 + 72cbbd0 commit 6426527

30 files changed

+319
-124
lines changed
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
## Programmers
2+
3+
4+
## Programmers 고득점 Kit
5+
6+
### Section1 - 해시
7+
8+
- [폰켓몬](https://school.programmers.co.kr/learn/courses/30/lessons/1845)
9+
- [완주하지 못한 선수](https://school.programmers.co.kr/learn/courses/30/lessons/42576)
10+
- [전화번호 목록](https://school.programmers.co.kr/learn/courses/30/lessons/42577)
11+
- [위장](https://school.programmers.co.kr/learn/courses/30/lessons/42578)
12+
- [베스트앨범](https://school.programmers.co.kr/learn/courses/30/lessons/42579)
13+
14+
### Section2 - 스택/큐
15+
16+
- [같은 숫자는 싫어](https://school.programmers.co.kr/learn/courses/30/lessons/12906)
17+
- [기능개발](https://school.programmers.co.kr/learn/courses/30/lessons/42586)
18+
- [올바른 괄호](https://school.programmers.co.kr/learn/courses/30/lessons/12909)
19+
- [프린터](https://school.programmers.co.kr/learn/courses/30/lessons/42587)
20+
- [다리를 지나는 트럭](https://school.programmers.co.kr/learn/courses/30/lessons/42583)
21+
- [주식가격](https://school.programmers.co.kr/learn/courses/30/lessons/42584)
22+
23+
### Section3 - 힙(HEAP)
24+
25+
- [더 맵게](https://school.programmers.co.kr/learn/courses/30/lessons/42626)
26+
27+
### Section4 - 정렬(Sort)
28+
29+
### Section5 - 완전탐색
30+
31+
### Section6 - 탐욕법(Greedy)
32+
33+
### Section7 - 동적 계획법(Dynamic Programming)
34+
35+
###

src/main/java/sgyj/programmers/yeji/cs/Solution42839.java

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

src/main/java/sgyj/programmers/yeji/hash/Solution1845.java renamed to src/main/java/sgyj/programmers/yeji/section1/Solution1845.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package sgyj.programmers.yeji.hash;
1+
package sgyj.programmers.yeji.section1;
22

33
import java.util.HashMap;
44
import java.util.Map;

src/main/java/sgyj/programmers/yeji/hash/Solution42576.java renamed to src/main/java/sgyj/programmers/yeji/section1/Solution42576.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package sgyj.programmers.yeji.hash;
1+
package sgyj.programmers.yeji.section1;
22

33
import java.util.HashMap;
44
import java.util.Map;

src/main/java/sgyj/programmers/yeji/hash/Solution42577.java renamed to src/main/java/sgyj/programmers/yeji/section1/Solution42577.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package sgyj.programmers.yeji.hash;
1+
package sgyj.programmers.yeji.section1;
22

33
import java.util.ArrayDeque;
44
import java.util.Arrays;

src/main/java/sgyj/programmers/yeji/hash/Solution42578.java renamed to src/main/java/sgyj/programmers/yeji/section1/Solution42578.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package sgyj.programmers.yeji.hash;
1+
package sgyj.programmers.yeji.section1;
22

33
import java.util.HashMap;
44
import java.util.Map;

src/main/java/sgyj/programmers/yeji/hash/Solution42579.java renamed to src/main/java/sgyj/programmers/yeji/section1/Solution42579.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package sgyj.programmers.yeji.hash;
1+
package sgyj.programmers.yeji.section1;
22

33
import java.util.ArrayList;
44
import java.util.Collections;

src/main/java/sgyj/programmers/yeji/stack/Solution12906.java renamed to src/main/java/sgyj/programmers/yeji/section2/Solution12906.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
1-
package sgyj.programmers.yeji.stack;
1+
package sgyj.programmers.yeji.section2;
22

3-
import java.lang.reflect.Array;
43
import java.util.ArrayDeque;
5-
import java.util.Arrays;
64
import java.util.Deque;
75

86
// 같은 숫자는 싫어

src/main/java/sgyj/programmers/yeji/stack/Solution12909.java renamed to src/main/java/sgyj/programmers/yeji/section2/Solution12909.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package sgyj.programmers.yeji.stack;
1+
package sgyj.programmers.yeji.section2;
22

33
import java.util.ArrayDeque;
44
import java.util.Deque;
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
package sgyj.programmers.yeji.section2;
2+
3+
import java.util.ArrayDeque;
4+
import java.util.Deque;
5+
6+
// 다리를 지나는 트럭
7+
public class Solution42583 {
8+
9+
private static int solution(int bridge_length, int weight, int[] truck_weights){
10+
int answer = 0;
11+
12+
Deque<Integer> q = new ArrayDeque<>();
13+
int sum = 0; // 다리를 건너는 트럭들의 무게 합
14+
15+
for(int t : truck_weights) {
16+
17+
while(true) {
18+
//큐가 비어있다면 다음 트럭 삽입
19+
if(q.isEmpty()) {
20+
q.offer(t);
21+
sum += t;
22+
answer++;
23+
break;
24+
}
25+
//큐의 사이즈와 다리의 길이가 같다면 큐에서 큐에서 처음 값을 빼고 최대 무게 -
26+
else if(q.size() == bridge_length) {
27+
sum -= q.poll();
28+
}
29+
//큐가 비어있지 않을 때
30+
else {
31+
//다음 트럭이 최대 무게 초과
32+
if(sum + t > weight) {
33+
q.offer(0);
34+
answer++;
35+
}
36+
//다음 트럭이 최대 무게 이내
37+
else {
38+
q.offer(t);
39+
sum += t;
40+
answer++;
41+
break;
42+
}
43+
}
44+
}
45+
}
46+
47+
//걸린 시간 + 마지막 트럭의 통과시간(다리의 길이)
48+
return answer + bridge_length;
49+
}
50+
51+
52+
public static void main ( String[] args ) {
53+
int bridge_length = 2;
54+
int weight = 10;
55+
int[] truck_weights = {7,4,5,6};
56+
System.out.println(solution(bridge_length,weight,truck_weights));
57+
}
58+
}
59+
60+
class Truck{
61+
int weight;
62+
int distance;
63+
64+
Truck(int weight, int distance){
65+
this.weight = weight;
66+
this.distance = distance;
67+
}
68+
}

src/main/java/sgyj/programmers/yeji/stack/Solution42584.java renamed to src/main/java/sgyj/programmers/yeji/section2/Solution42584.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package sgyj.programmers.yeji.stack;
1+
package sgyj.programmers.yeji.section2;
22

33
import java.util.ArrayDeque;
44
import java.util.Deque;

src/main/java/sgyj/programmers/yeji/stack/Solution42586.java renamed to src/main/java/sgyj/programmers/yeji/section2/Solution42586.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package sgyj.programmers.yeji.stack;
1+
package sgyj.programmers.yeji.section2;
22

33
import java.util.ArrayDeque;
44
import java.util.ArrayList;

src/main/java/sgyj/programmers/yeji/stack/Solution42587.java renamed to src/main/java/sgyj/programmers/yeji/section2/Solution42587.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package sgyj.programmers.yeji.stack;
1+
package sgyj.programmers.yeji.section2;
22

33
import java.util.ArrayDeque;
44
import java.util.ArrayList;

src/main/java/sgyj/programmers/yeji/heap/Solution42626.java renamed to src/main/java/sgyj/programmers/yeji/section3/Solution42626.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package sgyj.programmers.yeji.heap;
1+
package sgyj.programmers.yeji.section3;
22

33
import java.util.PriorityQueue;
44

src/main/java/sgyj/programmers/yeji/sort/Solution42746.java renamed to src/main/java/sgyj/programmers/yeji/section4/Solution42746.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package sgyj.programmers.yeji.sort;
1+
package sgyj.programmers.yeji.section4;
22

33
import java.util.Arrays;
44
import java.util.stream.Collectors;

src/main/java/sgyj/programmers/yeji/sort/Solution42747.java renamed to src/main/java/sgyj/programmers/yeji/section4/Solution42747.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package sgyj.programmers.yeji.sort;
1+
package sgyj.programmers.yeji.section4;
22

33
import java.util.Arrays;
44

src/main/java/sgyj/programmers/yeji/sort/Solution42748.java renamed to src/main/java/sgyj/programmers/yeji/section4/Solution42748.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package sgyj.programmers.yeji.sort;
1+
package sgyj.programmers.yeji.section4;
22

33
import java.util.Arrays;
44

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package sgyj.programmers.yeji.section5;
2+
3+
import java.util.HashSet;
4+
import java.util.Set;
5+
6+
public class Solution42839 {
7+
8+
private static Set<Integer> primeSet = new HashSet<>();
9+
private static boolean[] visited;
10+
private static Character[] cm;
11+
private static int answer = 0;
12+
public static int solution(String numbers) {
13+
14+
15+
return answer;
16+
}
17+
18+
public static void main ( String[] args ) {
19+
String numbers = "17";
20+
System.out.println(solution(numbers));
21+
}
22+
}

src/main/java/sgyj/programmers/yeji/cs/Solution42842.java renamed to src/main/java/sgyj/programmers/yeji/section5/Solution42842.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package sgyj.programmers.yeji.cs;
1+
package sgyj.programmers.yeji.section5;
22

33
public class Solution42842 {
44
public static int[] solution(int brown, int yellow) {

src/main/java/sgyj/programmers/yeji/cs/Solution87946.java renamed to src/main/java/sgyj/programmers/yeji/section5/Solution87946.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package sgyj.programmers.yeji.cs;
1+
package sgyj.programmers.yeji.section5;
22

33
public class Solution87946 {
44
private static boolean[] check;
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
package sgyj.programmers.yeji.section6;
2+
3+
// 조이스틱
4+
public class Solution42860 {
5+
private static int answer;
6+
private static int min = Integer.MAX_VALUE;
7+
private static int[] visited;
8+
// A - 65, Z - 90
9+
public static int solution(String name) {
10+
visited = new int[name.length()];
11+
int startAlpha = name.charAt( 0 );
12+
13+
if(startAlpha<=77){
14+
visited[0] = startAlpha+1;
15+
answer+= startAlpha+1;
16+
}else{
17+
visited[0] = 90-startAlpha;
18+
answer+= 90-startAlpha;
19+
}
20+
for(int i=1; i<name.length(); i++){
21+
moveJoyStick(1,visited[i-1], name,0);
22+
}
23+
return answer;
24+
}
25+
26+
public static void moveJoyStick(int i, int cur, String name, int count){
27+
int result = Integer.valueOf(name.charAt( i ));
28+
int abs = Math.abs( 90 - cur );
29+
30+
31+
}
32+
public static void main ( String[] args ) {
33+
String name = "JEROEN";
34+
System.out.println(solution(name));
35+
}
36+
}
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
package sgyj.programmers.yeji.section7;
2+
3+
import java.util.ArrayList;
4+
import java.util.HashSet;
5+
import java.util.List;
6+
import java.util.Set;
7+
8+
// N으로 표현
9+
public class Solution42895 {
10+
public static int solution(int N, int number) {
11+
List<Set<Integer>> countList = new ArrayList<>();
12+
13+
for(int i=0; i<9; i++)
14+
countList.add(new HashSet<>());
15+
16+
countList.get(1).add(N); // N을 1개 쓴 값은 N 혼자이다.
17+
18+
for(int i=2; i<9; i++){
19+
Set<Integer> countSet = countList.get(i);
20+
21+
for(int j=1; j<=i; j++){
22+
Set<Integer> preSet = countList.get(j);
23+
Set<Integer> postSet = countList.get(i - j);
24+
25+
for(int preNum : preSet){
26+
for(int postNum : postSet){
27+
countSet.add(preNum + postNum);
28+
countSet.add(preNum - postNum);
29+
countSet.add(preNum * postNum);
30+
31+
if(preNum != 0 && postNum != 0)
32+
countSet.add(preNum / postNum);
33+
}
34+
}
35+
}
36+
37+
countSet.add(Integer.parseInt(String.valueOf(N).repeat(i)));
38+
}
39+
40+
for(Set<Integer> sub : countList){
41+
if(sub.contains(number))
42+
return countList.indexOf(sub);
43+
}
44+
45+
return -1;
46+
}
47+
public static void main ( String[] args ) {
48+
int N = 2;
49+
int number = 11;
50+
System.out.println( solution(N,number) );
51+
}
52+
}

0 commit comments

Comments
 (0)