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..
다른 것보다 테스트케이스가 딱 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 =..
핵심은 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];..
스택과 큐를 사용해서 풀어야 하는 문제지만 ArrayList를 사용하여 다리위 상태를 구현하고, 트럭이 올라가고 내려가는 것을 계산하여 알맞게 loadTruck, unloadTruck 을 호출한다. 다리 위(BRIDGE class) 의 총 무게가 하중을 견딜수 있을만큼만 올려놓고 올려진 트럭이 탄 시간 + 다리위에 있는 시간을 계산하여 다리에서 내린다. 아직 타지 않은 트럭이 없으면 더 이상 loadTruck을 할 필요는 없어지고 최초상태를 제외하고 다리 위에 트럭의 무게가 0이라면 루프를 빠져나온다. import java.util.*; import java.util.stream.Collectors; class Solution { public int solution(int bridge_length, in..
#1. ArrayList public class ArrayList extends AbstractList implements List, RandomAccess, Cloneable, Serializable 데이터 추가 : 기존 배열 크기 + 1을 가지는 임시배열을 하나 만들고, 추가할 위치의 인덱스를 제외한 위치에 각 데이터를 전체 복제한다. 그리고 난 후, 신규 데이터를 추가한다. 데이터 접근 : 인덱스를 이용하여 바로 접근한다. 데이터 추가/삭제 과정에서 데이터 Shift작업이 일어나기 때문에 LinkedList에 비해 추가 연산이 필요하다. 하지만, 인덱스를 이용하여 무작위접근(random access)가 가능하다. #2. LinkedList public class LinkedList extends A..
#1. git 로그인 먼저 개별적으로 알려준 계정을 통해 gitea에 로그인을 한다. #2. 풀 리퀘스트 하기 그런 다음 브랜치 선택 버튼 옆에 있는 새 풀 리퀘스트를 클릭한다. 풀 리퀘스트는 말 그대로 풀(Pull)을 리퀘스트(Request) 하는것. 다시 말해 master 브랜치에게 dev 브랜치의 변경내용을 반영해 달라고 요청하는 작업이다. 상단에 어디에서 어디로 병합을 요청할 것인지 설정을 다시 한번 확인 한다. [병합하기 : DevOps:master] ... [다음으로부터 풀 : DevOps:dev] 위 내용은 master 브랜치에 dev 브랜치의 내용을 merge하겠다는 내용이다. dev 브랜치에서 작업하고 커밋한 내용을 확인 한 후, 새 풀 리퀘스트 버튼을 클릭한다. 타이틀과 내용에 풀 리퀘..