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
75 changes: 75 additions & 0 deletions Basic_Of_Algorithm/src/Today_22_05_19/menuRenew.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
package Today_22_05_19;

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

public class menuRenew {

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

public static void main(String[] args) {

String [] orders = {"ABCFG", "AC", "CDE", "ACDE", "BCFG", "ACDEH"};
int [] course = {2,3,4};

for(int i=0;i<orders.length;i++) {
char[]temp = orders[i].toCharArray();
Arrays.sort(temp);
orders[i] = String.valueOf(temp);
}


for(int count : course) {
for(String order : orders) {

dfs(count,order,"");
}


if(!map.isEmpty()) {
ArrayList<Integer> maxValue = new ArrayList<>(map.values());
int max = Collections.max(maxValue);
if(max>1) {
for(String key : map.keySet()) {
if(map.get(key)==max) {
answerList.add(key);
}
}
}
}


map.clear();
}

Collections.sort(answerList);

String[]answer = new String[answerList.size()];

for(int i=0;i<answer.length;i++) answer[i] = answerList.get(i);

for(String str : answer)System.out.print('"'+str+'"'+",");


}


static void dfs(int count,String order,String now) {

if(count==0) {
map.put(now, map.getOrDefault(now, 0)+1);
return;
}

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

dfs(count-1,order.substring(i+1),now+order.charAt(i));
}


}

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

import java.util.*;

public class rankingSearching {

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 [] answer = new int[query.length];

for(String str : info) {
String []temp = str.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(" ");
answer[i] = map.containsKey(temp[0]) ? binarySearch(temp[0],temp[1]) : 0;

}


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



}

static int binarySearch(String now,String infoScore) {

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

int score = Integer.parseInt(infoScore);

int start = 0, end = list.size()-1;

while(start<=end) {

int mid = (start+end)/2;

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


}

return list.size()-start;



}

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

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

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




}

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

import java.util.*;

public class soosick {

static long answer = 0;
static ArrayList<Long> numList = new ArrayList<>();
static ArrayList<Character> opList = new ArrayList<>();
static char [] op = {'+','-','*'};
static boolean []visited = new boolean[3];

public static void main(String[] args) {

String expression = "100-200*300-500+20";

String num = "";
for(int i=0;i<expression.length();i++) {

char ch = expression.charAt(i);

if(ch>='0' && ch <= '9') {
num += ch;
}else {
numList.add(Long.parseLong(num));
num="";
opList.add(ch);
}
}

numList.add(Long.parseLong(num));

dfs(new char[3],0);

System.out.println(answer);
}

static Long change(char ch , long a, long b) {
if(ch=='+') return a + b;
else if(ch=='*') return a * b;
else if(ch=='-') return a - b;
else return (long)0;
}

static void dfs(char[]p,int count) {

if(count==3) {
ArrayList<Long> numArr = new ArrayList<>(numList);
ArrayList<Character> opArr = new ArrayList<>(opList);

for(int i=0;i<p.length;i++) {
for(int j=0;j<opArr.size();j++) {
if(opArr.get(j)==p[i]) {
long a = change(opArr.remove(j),numArr.remove(j),numArr.remove(j));
numArr.add(j,a);
j--;

}
}
}

answer = Math.max(answer, Math.abs(numArr.get(0)));

return;


}




for(int i=0;i<3;i++) {
if(!visited[i]) {
visited[i] = true;
p[count] = op[i];
dfs(p,count+1);
visited[i] = false;
}

}



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

import java.util.HashMap;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Set;
public class no_1 {

public static void main(String[] args) {

String[]id_list = {"muzi", "frodo", "apeach", "neo"};
String [] report = {"muzi frodo","apeach frodo","frodo neo","muzi neo","apeach muzi"};
int k = 2;

//나를 신고한 사람 리스트를 뽑음
//그 사이즈가 2 이상이면
//나를 신고한 사람한테 +1

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

HashMap<String,Set<String>> singoList = new HashMap<>();
//나를 신고한 사람 리스트
HashMap<String,Integer> myList = new HashMap<>();
//내가 받을 매일 횟수

for(int i=0;i<id_list.length;i++) {
singoList.put(id_list[i], new HashSet<>());
myList.put(id_list[i], 0);
}

for(int i=0;i<report.length;i++) {
String[]temp = report[i].split(" ");

String attack = temp[0];
String taker = temp[1];
singoList.get(taker).add(attack);


}

System.out.println(singoList);

for(String key : singoList.keySet()) {

if(singoList.get(key).size()>=k) {

System.out.println(singoList.get(key));

for(String str : singoList.get(key)) {

myList.put(str, myList.get(str)+1);


}
}

}

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

result[i] = myList.get(id_list[i]);

}


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

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

public class no_2 {

public static void main(String[] args) {

String new_id = "...!@BaT#*..y.abcdefghijklm";

new_id = new_id.toLowerCase();
new_id = new_id.replaceAll("[^a-z1-9-_.]", "");
new_id = new_id.replaceAll("[.]{2,}", ".");
new_id = new_id.replaceAll("^[.]|[x]$", "");

if(new_id.isEmpty())new_id ="a";

if(new_id.length()>15) {
new_id = new_id.substring(0,15);
new_id = new_id.replaceAll("[.]$", "");
}

if(new_id.length()<3) {
while(new_id.length()<3) {
new_id += new_id.charAt(new_id.length()-1);
}
}

System.out.println(new_id);

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

public class no_3 {

public static void main(String[] args) {

String s = "one4seveneight";
int answer = 0;

String [] alpha = {"zero","one","two","three","four","five","six","seven","eight","nine"};


for(int i=0;i<alpha.length;i++) s = s.replaceAll(alpha[i], String.valueOf(i));

answer = Integer.valueOf(s);


System.out.println(answer);

}

}
Loading