Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package Today22_05_11;
package Today_22_05_11;

import java.util.LinkedList;
import java.util.Queue;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package Today22_05_11;
package Today_22_05_11;

import java.util.LinkedList;
import java.util.Queue;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package Today22_05_11;
package Today_22_05_11;

public class combi_dfs {

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package Today22_05_11;
package Today_22_05_11;

public class dfs {

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package Today22_05_11;
package Today_22_05_11;

import java.util.*;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package Today22_05_11;
package Today_22_05_11;

import java.util.Arrays;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package Today22_05_11;
package Today_22_05_11;

import java.util.Arrays;

Expand Down
86 changes: 86 additions & 0 deletions Basic_Of_Algorithm/src/Today_22_05_12/RankingSearch.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
package Today_22_05_12;

import java.util.HashMap;
import java.util.ArrayList;
import java.util.Collections;

public class RankingSearch {

static HashMap<String,ArrayList<Integer>> map = new HashMap<>();


public static void main(String[] args) {


String [] info = {"java backend junior pizza 150","python frontend senior chicken 210","python frontend senior chicken 150","cpp backend senior pizza 260","java backend junior chicken 80","python backend senior chicken 50"};

String [] query = {"java and backend and junior and pizza 100","python and frontend and senior and chicken 200","cpp and - and senior and pizza 250","- and backend and senior and - 150","- and - and - and chicken 100","- and - and - and - 150"};

int[]result = new int[query.length];


for(int i=0;i<info.length;i++) {

String[]temp = info[i].split(" ");
dfs(temp,0,"");

}
for(String key : map.keySet()) {
Collections.sort(map.get(key));
}

for(int i=0;i<query.length;i++) {

query[i] = query[i].replaceAll(" and ", "");

String [] temp = query[i].split(" ");

result[i] = map.containsKey(temp[0]) ? binarySearch(temp[0],temp[1]) : 0;
}

for(int i : result)System.out.println(i);

}

static int binarySearch(String key,String value) {

int score = Integer.parseInt(value);

ArrayList<Integer> list = map.get(key);

int start = 0;

int end = list.size()-1;


while(start<=end) {

int mid = (start+end)/2;

if(score<=list.get(mid)) end = mid-1;
else if(score>list.get(mid)) start = mid+1;


}

return list.size()-start;


}

static void dfs(String[]temp,int count,String now) {


if(count==4) {
if(!map.containsKey(now)) {
map.put(now, new ArrayList<>());
}
map.get(now).add(Integer.parseInt(temp[4]));
return;
}

dfs(temp,count+1,now+"-");
dfs(temp,count+1,now+temp[count]);

}
}
57 changes: 57 additions & 0 deletions Basic_Of_Algorithm/src/Today_22_05_12/apchuck.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
package Today_22_05_12;

public class apchuck {

public static void main(String[] args) {

String s = "ababcdcdababcdcd";


int answer = Integer.MAX_VALUE;


for(int i=1;i<=s.length()/2;i++) {


String result = "";
String now = ""; String next = "";
int count = 1;

for(int j=0;j<=s.length()/i;j++) {


int start = j*i;

int end = s.length() > i * (j+1) ? i * (j+1) : s.length();

now = next;

next = s.substring(start,end);

if(now.equals(next)) {
count++;
}else {
result += check(count) + now;
count = 1;
}



}

result += check(count) + next;

System.out.println(result + " -> 갯수 : "+ result.length());

answer = Math.min(answer, result.length());

}
System.out.println();
System.out.println("답 : " + answer);

}

static String check(int count) {
return count > 1 ? String.valueOf(count) : "";
}
}
68 changes: 68 additions & 0 deletions Basic_Of_Algorithm/src/Today_22_05_12/changebracket.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
package Today_22_05_12;

public class changebracket {


public static void main(String[] args) {

String p = ")(";

if(p.isEmpty())System.out.println("nope");
else {

String answer = change(p);
System.out.println(answer);
}



}

static String change(String w) {

if(w.isEmpty()) return "";

String u = "";
String v = "";

int l = 0;
int r = 0;
int i;

for(i=0;i<w.length();i++) {

char ch = w.charAt(i);

if(ch=='(')l++;
else r++;


if(l==r) break;

}

u = w.substring(0,i+1);
v = w.substring(i+1);

if(isRight(u)) {
u += change(v);
}else {
String str = "(" + change(v) + ")";
u = u.substring(1,u.length()-1);
u = u.replaceAll("\\(", ".");
u = u.replaceAll("\\)", "(");
u = u.replaceAll("\\.", ")");
str += u;
return str;
}
return u;

}
static boolean isRight(String u) {

if(u.charAt(0)==')') return false;
u = u.replaceAll("\\(\\)", "");

return true;
}
}
51 changes: 51 additions & 0 deletions Basic_Of_Algorithm/src/Today_22_05_12/fef.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
package Today_22_05_12;

import java.util.Arrays;
import java.util.Comparator;
import java.util.Stack;

public class fef {

public static void main(String[] args) {


int[][] rooms = {{1,4},{3,5},{0,6},{5,7},{3,8},
{5,9},{6,10},{8,11},{8,12},{2,13},
{12,14},{11,14}};

int answer = 0;

Arrays.sort(rooms,new Comparator<int[]>() {

@Override
public int compare(int[] o1, int[] o2) {

if(o1[1]==o2[1]) {
return o1[0] - o2[0];
}
return o1[1]-o2[1];
}

});

for(int i=0;i<rooms.length;i++) {
System.out.println(rooms[i][0]+" : " + rooms[i][1]);
}

int end_time = 0;
int count = 0;

for(int i=0;i<rooms.length;i++) {

if(rooms[i][0]>=end_time) {
end_time = rooms[i][1];
count++;
}


}

System.out.println("답 : " + count);

}
}
52 changes: 52 additions & 0 deletions Basic_Of_Algorithm/src/Today_22_05_12/gameMap.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
package Today_22_05_12;

import java.util.*;

public class gameMap {

public static void main(String[] args) {

int[][]maps = {{1,0,1,1,1},{1,0,1,0,1},{1,0,1,1,1},{1,1,1,0,1},{0,0,0,0,1}};

int answer = 0;

Queue<int[]> q = new LinkedList<>();


int[][]temp = new int[maps.length][maps[0].length];

int [][] move = {{0,1},{1,0},{0,-1},{-1,0}};


temp[0][0] = 1;

q.add(new int[] {0,0});

while(!q.isEmpty()) {

int[]cur = q.poll();

int i = cur[0];
int j = cur[1];

for(int d=0;d<4;d++) {

int ni = i + move[d][0];
int nj = j + move[d][1];

if(ni<0||nj<0||maps.length-1<ni||maps[0].length-1<nj) continue;

if(maps[ni][nj]==1&&temp[ni][nj]==0) {
temp[ni][nj] = temp[i][j] + 1;
q.add(new int[] {ni,nj});
}

}

}

System.out.println(temp[maps.length-1][maps[0].length-1]);


}
}
Loading