본문 바로가기

DataStructure&Algorithm

(52)
[DataStructure&Algorithm] 올바른 괄호 section : stack 풀이 1 import java.util.*; public class Main { public String solution(String str){ String answer = "YES"; Stack s = new Stack(); for(char x : str.toCharArray()){ if(x == '(') s.push(x); else{ if(s.isEmpty()) return "NO"; else s.pop(); } } if(!s.isEmpty()) return "NO"; return answer; } public static void main(String[] args){ Main m = new Main(); Scanner scanner = new Scanner(System...
[DataStructure&Algorithm] K번째 큰 수 section : TreeSet 풀이 1 import java.util.*; public class Main { public int solution(int a, int b, String str){ int answer = -1; TreeSet set = new TreeSet(Collections.reverseOrder()); String[] strArr = str.split(" "); Arrays.sort(strArr, Comparator.reverseOrder()); int p1=0, p2=1, p3=2, cnt = 0; while(true){ if (p2 == a-2 && p3 == a){ p1++; p2 = p1+1; p3 = p2+1; } else if(p3 == a) { p2++; p3 = p2 ..
[DataStructure&Algorithm] 모든 아나그램 찾기 section : HashMap 풀이 1 import java.util.*; public class Main { public int solution(String a, String b){ HashMap am = new HashMap(); HashMap bm = new HashMap(); char[] aArr = a.toCharArray(); char[] bArr = b.toCharArray(); for(char c : bArr) bm.put(c, bm.getOrDefault(c, 0)+1); int p1 = 0, p2 = bArr.length-1, n = aArr.length, answer = 0; while(p2
[DataStructure&Algorithm] 매출액의 종류 풀이 1 import java.util.ArrayList; import java.util.HashMap; import java.util.Scanner; public class Main { public ArrayList solution(int a, int b, String str){ HashMap map = new HashMap(); String[] strArr = str.split(" "); ArrayList answer = new ArrayList(); int p1 = 0, p2 = b-1; while(p2
[DataStructure&Algorithm] 아나그램(해쉬) section : HashMap 풀이 1 import java.util.HashMap; import java.util.Scanner; public class Main { public String solution(String a, String b){ HashMap map1 = new HashMap(); for(char c : a.toCharArray()){ map1.put(c, map1.getOrDefault(c,0)+1); } HashMap map2 = new HashMap(); for(char c : b.toCharArray()){ map2.put(c, map2.getOrDefault(c,0)+1); } for(char key : map1.keySet()){ if(!(map1.get(key)==map2..
[DataStructure&Algorithm] 학급 회장 section : HashMap 풀이 1 import java.util.Collections; import java.util.HashMap; import java.util.Scanner; public class Main { public char solution(int n, String str){ char answer = ' '; char[] chArr = str.toCharArray(); HashMap map = new HashMap(); for(int i=0; imax){ max = map.get(key); answer = key; } } return answer; } public static void main(String[] args){ Main m = new Main(); Scanner scanne..
[DataStructure&Algorithm] 최대 길이 연속 부분 수열 section : two pointers 풀이 1 import java.util.Scanner; public class Main { public int solution(int n, int k, int[] arr){ int answer = 0, cnt = 0, p1 = 0, p2 = 0; while(true){ if(arr[p2] == 0) cnt++; p2++; while(cnt>k){ if(arr[p1]==0) cnt--; p1++; } if(p2-p1 > answer) answer = p2-p1; if(p2 == n) break; } return answer; } public static void main(String[] args){ Main m = new Main(); Scanner scanner ..
[DataStructure&Algorithm] 연속된 자연수의 합 section : two pointers 풀이 1 import java.util.Scanner; public class Main { public int solution(int n){ int[] a = new int[n/2+1]; int p1 = 0, p2 = 0, tmp = 0, answer = 0; for(int i=0; i=n) tmp -= a[p1++]; else if(a.length==p2) break; else tmp += a[p2++]; if(tmp==n) answer++; } return answer; } public static void main(String[] args){ Main m = new Main(); Scanner scanner = new Scanner(System.in); in..