본문 바로가기

프로그래머스 - JAVA

(24)
코딩테스트 연습 > 이분탐색 > 입국심사 이전 코드 import java.util.*; class Solution { public long solution(int n, int[] times) { long answer = Long.MAX_VALUE; Arrays.sort(times); long start = 0; long mid; long end = Long.MAX_VALUE; long sum; while (start = n){ break; } } if (sum < n){ start = mid + 1; } else { end = mid - 1; answer = Math.min(answer, mid); } } return answer; } } 최신 코드 import java.util.*; class Solution { public long solu..
코딩테스트 연습 > 깊이/너비 우선 탐색(DFS/BFS) > 여행경로 이전 코드 import java.util.*; class Solution { ArrayList ticketsArrayList = new ArrayList(); ArrayList ansArrayList = new ArrayList(); public String[] solution(String[][] tickets) { String[] answer = {}; for (String [] ticket : tickets){ ticketsArrayList.add(new Ticket(ticket[0], ticket[1])); } dfs(ticketsArrayList, "ICN", "ICN"); Collections.sort(ansArrayList); return ansArrayList.get(0).split(",")..
코딩테스트 연습 > 깊이/너비 우선 탐색(DFS/BFS) > 단어 변환 이전 코드 import java.util.*; class Solution { int answer = 0; public int solution(String begin, String target, String[] words) { boolean isFind = false; answer = words.length + 1; for (String word : words){ if (word.equals(target)){ isFind = true; break; } } if (!isFind){ return 0; } dfs (begin, begin, new ArrayList(Arrays.asList(words)), 0, target); return answer; } public void dfs (String pastWor..
코딩테스트 연습 > 깊이/너비 우선 탐색(DFS/BFS) > 네트워크 이전 코드 class Solution { public int solution(int n, int[][] computers) { int answer = 0; boolean [] searchCheck = new boolean [n]; for (int i = 0 ; i < n ; i++){ if (!searchCheck[i]){ dfs(computers, searchCheck, i); answer ++; } } return answer; } public boolean[] dfs (int [][] computers, boolean [] searchCheck, int i){ searchCheck[i] = true; for (int j = 0 ; j < computers.length ; j++){ if(i != j..
코딩테스트 연습 > 힙(Heap) > 디스크 컨트롤러 기존 코드 import java.util.*; class Solution { public int solution(int[][] jobs) { PriorityQueue jobAllQueue = new PriorityQueue(new Comparator() { @Override public int compare(DiskTask o1, DiskTask o2) { if(o1.getStartTime() == o2.getStartTime() ) { return o1.getLeadTime() - o2.getLeadTime(); } else { return o1.getStartTime() - o2.getStartTime(); } } }); PriorityQueue jobTimeQueue = new PriorityQue..
코딩테스트 연습 > 깊이/너비 우선 탐색(DFS/BFS) > 타겟 넘버 이전 코드 class Solution { public int solution(int[] numbers, int target) { int answer = 0; answer = dfs (numbers, 0, 0, target); return answer; } public int dfs(int [] number, int node, int sum, int target){ if (number.length == node){ if(target == sum){ return 1; } else { return 0; } } return dfs(number, node + 1, sum + number[node], target) + dfs(number, node + 1, sum - number[node], target); } }..
코딩테스트 연습 > 탐욕법(Greedy) > 구명보트 이전 코드 import java.util.*; class Solution { public int solution(int[] people, int limit) { int answer = 0; int i = 0; int j = people.length - 1; Arrays.sort(people); // 80, 70, 50, 50 // ans 1, i 1, j 3 // ans 2, i 2, j 3 // ans 3, i 3, j 2 while (i
코딩테스트 연습 > 탐욕법(Greedy) > 큰 수 만들기 이전 코드 import java.util.*; import java.util.regex.Pattern; class Solution { public String solution(String number, int k) { StringBuilder stringBuilder = new StringBuilder(); int ansLen = number.length() - k; if(Pattern.matches(number.charAt(0) + "{" + number.length() +"}", number)){ return number.substring(0, number.length() - k); } if(number.equals("0")){ return "0"; } else { while (true){ if (k..