기타/알고리즘
-
-
프로그래머스 > 정렬 > K번째수기타/알고리즘 2021. 8. 8. 14:16
배열 array의 i번째 숫자부터 j번째 숫자까지 자르고 정렬했을 때, k번째에 있는 수를 구하려 합니다. array commands [[i,j,k],[i,j,k]..] return [1, 5, 2, 6, 3, 7, 4] [[2, 5, 3], [4, 4, 1], [1, 7, 3]] [5, 6, 3] public static int[] solution(int[] array, int[][] commands) { int[] answer = new int[commands.length]; int idx = 0; for(int i=0;i
-
프로그래머스 > 이중우선순위 큐기타/알고리즘 2021. 8. 7. 22:12
이중 우선순위 큐는 다음 연산을 할 수 있는 자료구조를 말합니다. 명령어수신 탑(높이) I 숫자 큐에 주어진 숫자를 삽입합니다. D 1 큐에서 최댓값을 삭제합니다. D -1 큐에서 최솟값을 삭제합니다. 이중 우선순위 큐가 할 연산 operations가 매개변수로 주어질 때, 모든 연산을 처리한 후 큐가 비어있으면 [0,0] 비어있지 않으면 [최댓값, 최솟값]을 return 하도록 solution 함수를 구현해주세요. List 를 만들어 요소를 Insert 할 때마다 정렬하고, 최소값을 뺄 때는 List 의 맨 앞 요소를 removeFirst , 최대값을 뺄 때는 removeLast로 맨 뒤 요소를 제거한다. public static int[] solution(String[] operations) { in..
-
-
-
-
프로그래머스 > 최고의 입찰가기타/알고리즘 2021. 7. 23. 13:26
package lmhs.comm.base.test; import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.Set; import java.util.Stack; import java.util.stream.Collectors; public class StackTest { public static void main(String[] args) { int n= 3; //참가자 int[][] record = {{1,100},{2,150},{3,300},{1,200},{2,250},{3,350},{2,-1},{3,..
-
프로그래머스 > 행렬기타/알고리즘 2021. 7. 23. 13:25
행렬 재구성 i 행의 모든 숫자와 j 열의 모든 숫자의 합이 i행 j 열의 값인 새로운 행렬만들기. 단, 교차 지점의 숫자는 한번만 더해야한다. 1 2 3 4 5 6 7 8 9 1 +2 + 3 + 4 + 7 = 17 17 19 21 23 25 27 29 31 33 matrix result [[1,2,3][4,5,6][7,8,9]] [[17,19,21][23,25,27][29,31,33]] 계속 메서드 하나 안에서 연산을 하려고 하니 복잡해지고 잘못된 결과만을 반환했다. 이중 for 문이 두개 필요한 연산으로 두개의 메서드로 쪼갠다. package lmhs.comm.base.test; public class Matrix { public static void main(String[] args) { int [..