diff --git "a/BOJ/1000-5000353円262円210円/JY_1535.java" "b/BOJ/1000-5000353円262円210円/JY_1535.java" new file mode 100644 index 00000000..166bb78f --- /dev/null +++ "b/BOJ/1000-5000353円262円210円/JY_1535.java" @@ -0,0 +1,45 @@ +package day1025; + +import java.io.*; +import java.util.*; + +public class JY_1535 { + + static int MAX_HP = 100; + + public static void main(String[] args) throws IOException{ + BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + StringTokenizer st = new StringTokenizer(br.readLine()); + + int N = Integer.parseInt(st.nextToken()); + + int[] h = new int[N+1]; + st = new StringTokenizer(br.readLine()); + for(int i=1; ih[i]; j--) { + dp[j] = Math.max(dp[j], dp[j-h[i]]+v[i]); + } + } + +// System.out.println(Arrays.toString(dp)); + + // 최대 기쁨 찾기 + int maxHappy = Integer.MIN_VALUE; + for(int j=1; j<101; j++) { + maxHappy = Math.max(maxHappy, dp[j]); + } + + System.out.println(maxHappy); + } + +} diff --git "a/BOJ/1000-5000353円262円210円/JY_2037.java" "b/BOJ/1000-5000353円262円210円/JY_2037.java" new file mode 100644 index 00000000..01acce48 --- /dev/null +++ "b/BOJ/1000-5000353円262円210円/JY_2037.java" @@ -0,0 +1,40 @@ +package day1025; + +import java.io.*; +import java.util.*; + +public class JY_2037 { + + public static void main(String[] args) throws IOException{ + BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + StringTokenizer st = new StringTokenizer(br.readLine()); + + int D = Integer.parseInt(st.nextToken()); + int P = Integer.parseInt(st.nextToken()); + + long[] L = new long[P+1]; + long[] C = new long[P+1]; + long[] dp = new long[D+1]; + for(int i=1; i=L[i]; j--) { + dp[j] = Math.max(dp[j], Math.min(dp[(int)(j-L[i])], C[i])); + } + } +// System.out.println(Arrays.toString(dp)); + + System.out.println(dp[D]); + + } + +} diff --git "a/BOJ/20001-25000353円262円210円/JY_21939.java" "b/BOJ/20001-25000353円262円210円/JY_21939.java" new file mode 100644 index 00000000..c89c1803 --- /dev/null +++ "b/BOJ/20001-25000353円262円210円/JY_21939.java" @@ -0,0 +1,86 @@ +package day1023; + +import java.io.*; +import java.util.*; + +public class JY_21939 { + + static int MAXNUM = 100001; + // 문제 번호에 해당하는 난이도 저장 배열 + static int[] srr; + + // 가장 어려운 문제 출력 우선순위 큐 + static PriorityQueue hpq = new PriorityQueue(new Comparator() { + @Override + public int compare(int[] o1, int[] o2) { + if(o1[0]==o2[0]) return o2[1] - o1[1]; + return o2[0]-o1[0]; + } + }); + // 가장 쉬운 문제 출력 우선순위 큐 + static PriorityQueue epq = new PriorityQueue(new Comparator() { + @Override + public int compare(int[] o1, int[] o2) { + if(o1[0]==o2[0]) return o1[1] - o2[1]; + return o1[0] - o2[0]; + } + }); + + public static void main(String[] args) throws IOException { + BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + StringTokenizer st = new StringTokenizer(br.readLine()); + + srr = new int[MAXNUM]; + int N = Integer.parseInt(st.nextToken()); + for(int i=0; i> fMap; + static Map indegree; + static Map score; + static List cList; + static List ans; + + public static void main(String[] args) throws IOException { + BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + StringTokenizer st = new StringTokenizer(br.readLine()); + + N = Integer.parseInt(st.nextToken()); + M = Integer.parseInt(st.nextToken()); + + + fMap = new HashMap(); + indegree = new HashMap(); + st = new StringTokenizer(br.readLine()); + king = st.nextToken(); + fMap.put(king, new ArrayList()); + indegree.put(king, 0); + + for(int i=0; i()); + } + if(fMap.get(p2) == null) { + fMap.put(p2, new ArrayList()); + } + if(fMap.get(child) == null) { + fMap.put(child, new ArrayList()); + } + // 자식 추가 + fMap.get(p1).add(child); + fMap.get(p2).add(child); + + // 진입차수 설정 + indegree.put(p1, indegree.getOrDefault(p1, 0)); + indegree.put(p2, indegree.getOrDefault(p2, 0)); + indegree.put(child, indegree.getOrDefault(child, 0)+2); + + } + + cList = new ArrayList(); + for(int i=0; i(); + score = new HashMap(); + topologySort(); + +// System.out.println(ans); +// System.out.println(score); + + // 후계자 찾기 + String candidate = ""; + double s = 0.0; + for(int i=0; i q = new LinkedList(); + + // 진입차수가 0인 노드 삽입 + q.add(king); + for(String key: indegree.keySet()) { + if(key.equals(king)) { + score.put(key, 1.0); + continue; + } + if(indegree.get(key) == 0) { + q.add(key); + score.put(key, 0.5); + } + } + + while(!q.isEmpty()) { + String now = q.poll(); + ans.add(now); + for(String c: fMap.get(now)) { + indegree.put(c, indegree.get(c)-1); + score.put(c, score.getOrDefault(c, 0.0)+ score.get(now)*0.5); + if(indegree.get(c) == 0) { + q.add(c); + } + } + } + + } + +} diff --git "a/CodeTree/2019-2020353円205円204円/JY_354円213円234円352円263円265円354円235円230円_353円217円214円355円222円215円.java" "b/CodeTree/2019-2020353円205円204円/JY_354円213円234円352円263円265円354円235円230円_353円217円214円355円222円215円.java" new file mode 100644 index 00000000..d43231cd --- /dev/null +++ "b/CodeTree/2019-2020353円205円204円/JY_354円213円234円352円263円265円354円235円230円_353円217円214円355円222円215円.java" @@ -0,0 +1,138 @@ +package day1021; + +import java.io.*; +import java.util.*; + +public class JY_시공의_돌풍 { + + static int N, M, T; + static int[][] g; + // 상우하좌 + static int[] dx = {-1, 0, 1, 0}; + static int[] dy = {0, 1, 0, -1}; + static List tList; + + public static void main(String[] args) throws IOException{ +// System.setIn(new FileInputStream("src/day1021/tornado.txt")); + BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + StringTokenizer st = new StringTokenizer(br.readLine()); + + N = Integer.parseInt(st.nextToken()); + M = Integer.parseInt(st.nextToken()); + T = Integer.parseInt(st.nextToken()); + + g = new int[N][M]; + tList = new ArrayList(); + for(int i=0; i=0 && x=0 && y nList = new ArrayList(); + for(int d=0; d<4; d++) { + int nx = i + dx[d]; + int ny = j + dy[d]; + if(!inRange(nx, ny)) continue; + if(g[nx][ny] == -1) continue; + + nList.add(new int[] {nx, ny}); + } + + tmp[i][j] += g[i][j] - amount*nList.size(); + for(int[] next: nList) { + int nx = next[0]; + int ny = next[1]; + tmp[nx][ny] += amount; + } + } + } + + // copy + g = tmp; + } + public static void clean(int ox, int oy, int[] dir, boolean up) { + int x = ox; + int y = oy; + int dCnt = 0; + int tmp = g[x][y]; + while(true) { + int nx = x + dx[dir[dCnt]]; + int ny = y + dy[dir[dCnt]]; + if(!inRange(nx, ny) || (up && nx> ox) || (!up && nx < ox)) { + // 모든 방향 전환 완료 + if(dCnt>= 3) break; + // 방향전환 후, 다시 탐색 + dCnt = (dCnt+1) % 4; + continue; + } + + g[x][y] = g[nx][ny]; + x = nx; + y = ny; + } + + g[ox][oy] = tmp; + g[ox][oy+1] = 0; + + } + public static int countDust() { + int total = 0; + for(int i=0; i 0) { + total += g[i][j]; + } + } + } + return total; + } + +} diff --git a/Programmers/Level2/JY_49993.java b/Programmers/Level2/JY_49993.java new file mode 100644 index 00000000..ca4144dd --- /dev/null +++ b/Programmers/Level2/JY_49993.java @@ -0,0 +1,45 @@ +class Solution { + static int answer; + public int solution(String skill, String[] skill_trees) { + answer = 0; + + for(String t: skill_trees) { + // 포함된 스킬 개수 카운트 + int cnt = containSkill(t, skill); + // dfs로 가능한지 판단 + dfs(0,0, t, skill, cnt); + } + + return answer; + } + public static int containSkill(String tree, String skill) { + int cnt = 0; + for(int i=0; i s) { + return new int[] {-1}; + } + + // 원소의 곱을 최대로 만들때, 채울 수 있는 원소의 최솟값 + int num = s / n; + for(int i=0; i=n-m; i--){ + answer[i]++; + } + + return answer; + } +} \ No newline at end of file diff --git "a/SQL/07354円243円274円354円260円250円/JY_Biggest_Single_Number.sql" "b/SQL/07354円243円274円354円260円250円/JY_Biggest_Single_Number.sql" new file mode 100644 index 00000000..ff0da411 --- /dev/null +++ "b/SQL/07354円243円274円354円260円250円/JY_Biggest_Single_Number.sql" @@ -0,0 +1,9 @@ +-- Biggest Single Number +-- https://leetcode.com/problems/biggest-single-number/?envType=study-plan-v2&envId=top-sql-50 +select max(num) as num +from ( + select num + from mynumbers + group by num + having count(num) = 1 +) my \ No newline at end of file diff --git "a/SQL/07354円243円274円354円260円250円/JY_Customers_Who_Bought_All_Products.sql" "b/SQL/07354円243円274円354円260円250円/JY_Customers_Who_Bought_All_Products.sql" new file mode 100644 index 00000000..e73d4c86 --- /dev/null +++ "b/SQL/07354円243円274円354円260円250円/JY_Customers_Who_Bought_All_Products.sql" @@ -0,0 +1,6 @@ +-- Customers Who Bought All Products +-- https://leetcode.com/problems/customers-who-bought-all-products/?envType=study-plan-v2&envId=top-sql-50 +select customer_id +from customer +group by customer_id +having count(distinct product_key) = (select count(product_key) from product) \ No newline at end of file

AltStyle によって変換されたページ (->オリジナル) /