본문 바로가기

분류 전체보기76

[프로그래머스] (스택/큐) 기능개발 각 작업의 소요일자를 구한 후, 선작업 부터 같이 배포가능한 원소들을 뽑아서(소요일자가 자신보다 작은것) 배열에서 remove 시키는 방법으로 구현하였다. 배열에서 원소를 지워나가는 가장 안전한 방법은 iterator를 사용하는 것. import java.util.*; class Solution { public int[] solution(int[] progresses, int[] speeds) { int[] answer = {}; List temp = new ArrayList(); List tempAns = new ArrayList(); // 각 작업이 배포될 수 있는 일자를 별도로 담아 놓는다. for (int i = 0; i < progresses.length; i++) { int progress =.. 2021. 3. 23.
[LeetCode] Two Sum Two Sum - LeetCode 숫자의 배열, 목표 숫자를 입력받고 배열 중 두 수를 골라서 더하면 목표 숫자가 나오는 두 수의 인덱스를 반환하라. class Solution { public int[] twoSum(int[] nums, int target) { int[] answer = new int[2]; for (int i = 0; i < nums.length; i++) { int num1 = nums[i]; for (int j = i + 1; j < nums.length; j++) { int num2 = nums[j]; if(num1 + num2 == target) { answer[0] = i; answer[1] = j; break; } } } return answer; } } 출처: LeetCo.. 2021. 3. 22.
[프로그래머스] (스택/큐) 주식가격 다른 것보다 테스트케이스가 딱 1개뿐이라 검증에 애를 먹은 문제이다. 테스트 케이스를 추가하여 연습해보는 것을 추천한다. prices return [1, 2, 3, 2, 3] [4, 3, 1, 1, 0] [3, 1, 2, 2, 3, 1] [1, 4, 3, 2, 1, 0] [1, 2, 3, 1, 2, 3, 3, 1, 2] [8, 2, 1, 5, 3, 2, 1, 1, 0] class Solution { public int[] solution(int[] prices) { int[] answer = new int[prices.length]; for (int i = 0; i < prices.length -1; i++) { int nowPrice = prices[i]; int cnt = 0; for (int j =.. 2021. 3. 22.
[프로그래머스] (정렬) K번째 수 핵심은 Arrays.copyOfRange 를 사용하는 것. 제출후에 다시보니 쓸데 없이 List를 사용한 것 같음. 괜히 List를 Array로 변환하는 작업만 추가됨. import java.util.*; class Solution { public int[] solution(int[] array, int[][] commands) { int[] answer = new int[commands.length]; List ans = new ArrayList(); for (int[] command : commands) { int[] tmp = Arrays.copyOfRange(array, command[0]-1, command[1]); Arrays.sort(tmp); int t = tmp[command[2]-1];.. 2021. 3. 22.
[프로그래머스] (스택/큐) 다리를 지나는 트럭 스택과 큐를 사용해서 풀어야 하는 문제지만 ArrayList를 사용하여 다리위 상태를 구현하고, 트럭이 올라가고 내려가는 것을 계산하여 알맞게 loadTruck, unloadTruck 을 호출한다. 다리 위(BRIDGE class) 의 총 무게가 하중을 견딜수 있을만큼만 올려놓고 올려진 트럭이 탄 시간 + 다리위에 있는 시간을 계산하여 다리에서 내린다. 아직 타지 않은 트럭이 없으면 더 이상 loadTruck을 할 필요는 없어지고 최초상태를 제외하고 다리 위에 트럭의 무게가 0이라면 루프를 빠져나온다. import java.util.*; import java.util.stream.Collectors; class Solution { public int solution(int bridge_length, in.. 2021. 3. 22.
[List] ArrayList 와 LinkedList #1. ArrayList public class ArrayList extends AbstractList implements List, RandomAccess, Cloneable, Serializable 데이터 추가 : 기존 배열 크기 + 1을 가지는 임시배열을 하나 만들고, 추가할 위치의 인덱스를 제외한 위치에 각 데이터를 전체 복제한다. 그리고 난 후, 신규 데이터를 추가한다. 데이터 접근 : 인덱스를 이용하여 바로 접근한다. 데이터 추가/삭제 과정에서 데이터 Shift작업이 일어나기 때문에 LinkedList에 비해 추가 연산이 필요하다. 하지만, 인덱스를 이용하여 무작위접근(random access)가 가능하다. #2. LinkedList public class LinkedList extends A.. 2021. 3. 18.
반응형