본문 바로가기
최댓값과 최솟값 - 프로그래머스 (Java, Level 2) 처음 풀이 import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.StringTokenizer; class Solution { public String solution(String s) { StringBuilder sb = new StringBuilder(); StringTokenizer st = new StringTokenizer(s); List list = new ArrayList(); while(st.hasMoreTokens()) { list.add(Integer.valueOf(st.nextToken())); }//while end //리스트 정렬 Collections.sort(l.. 2022. 2. 21.
구명보트 - 프로그래머스 (Java, level 2) 처음 풀이 import java.util.Arrays; class Solution { public int solution(int[] people, int limit) { Arrays.sort(people); //짝의 수 int count = 0; //최대한 무게 차이가 많이 나는 사람끼리 짝해야 최소값 int index = people.length; //짝 지어진 (무거운)사람의 index //다음 cycle 때 index-1부터 탐색 for(int n=0; nn; i--) { if((people[n]+people[i]) 2022. 2. 18.
큰 수 만들기 - 프로그래머스 (Java, Level 2) class Solution { public String solution(String number, int k) { StringBuilder sb = new StringBuilder(); int length = number.length(); int[] intArr = new int[length]; //한 cycle에서의 최댓값의 index, 다음 loop 때 index+1부터 탐색 //index+1부터 시작하니까 0부터 시작하기 위해 -1로 초기화 int index = -1; /한 cycle에서의 최댓값 저장 int max = -1; //string -> int[] 변환 for(int i=0; i length-(length-k-n) index 이전까지만 탐색! ->(k+n) index 이전까지 탐색 for.. 2022. 2. 18.
체육복 - 프로그래머스 (Java, Level 2) import java.util.Arrays; class Solution { public int solution(int n, int[] lost, int[] reserve) { Arrays.sort(lost); Arrays.sort(reserve); int count = 0; boolean flag = false; boolean[] isUsed = new boolean[reserve.length]; //여벌있는 사람이 도난 당한 경우 선처리 for(int i=0; i 2022. 2. 18.
카펫 - 프로그래머스 (Java, Level 2) public class 카펫 { public int[] solution(int brown, int yellow) { int[] answer = new int[2]; //조건1. width>=length //조건2. width, length>=3 int width = 0, length = 0; //width * length = brown+yellow; int multiple = brown + yellow; //width + length = (brown+4)/2; int sum = (brown+4)/2; //w*l = multiple이므로 //multiple의 인수를 찾고, 그 중 w+l = sum이 되는 것이 정답 //조건1, 2때문에 i는 3부터, 작은 수부터 탐색하므로 i가 length가 됨 //i는 .. 2022. 2. 10.
가장 큰 수 - 프로그래머스 (Java, Level 2) import java.util.Arrays; import java.util.Comparator; class Solution { public String solution(int[] numbers) { StringBuilder sb = new StringBuilder(); //int[] -> String[] String[] strArr = new String[numbers.length]; for(int i=0; i 2022. 2. 9.
K번째 수 - 프로그래머스 (Java, Level 1) package programmers; import java.util.Arrays; import java.util.PriorityQueue; public class K번째수 { //priority queue활용 public void solution(int[] array, int[][] commands) { PriorityQueue pq = new PriorityQueue(); int[] answer = new int[commands.length]; int index = 0; for(int i=0; i 2022. 2. 9.
이중우선순위큐 - 프로그래머스 (Java, Level 3) package programmers; import java.util.Collections; import java.util.PriorityQueue; import java.util.StringTokenizer; public class 이중우선순위큐 { public int[] solution(String[] operations) { int[] answer = {0, 0}; StringTokenizer tokenizer = null; //최솟값, 최댓값 둘 다 필요하므로 우선순위 큐 2개 생성 PriorityQueue maxPQ = new PriorityQueue(Collections.reverseOrder()); PriorityQueue minPQ = new PriorityQueue(); for(String.. 2022. 2. 9.
더 맵게 - 프로그래머스 (Java, Level 2) import java.util.PriorityQueue; public class Solution { public int solution(int[] scoville, int K) { int answer = 0; //배열 값 중에서 첫번째, 두번째 작은 수를 찾아야 하므로 //우선순위 큐 사용 PriorityQueue pq = new PriorityQueue(); for(int num : scoville) { pq.add(num); } while(pq.size()>1 && pq.peek() 2022. 2. 9.
기능 개발 - 프로그래머스 (Java, Level 2) package programmers; import java.util.ArrayList; import java.util.LinkedList; import java.util.List; import java.util.Queue; public class 기능개발 { public int[] solution(int[] progresses, int[] speeds) { //작업 진도가 100이되는 시간을 queue에 저장 (먼저 시작한 작업이 먼저 배포가 되어야 하니까! FIFO) Queue queue = new LinkedList(); int day = 0; for(int i=0; i 2022. 2. 8.