논문배열을 역정렬하거나, Arrays.sort를 해서 뒤부터 찾도록 하자. 원소의 인용횟수(인자) vs 정렬한 배열에서 원소보다 크거나 같은 갯수(루프 반복횟수) 를 세어서 역전이 일어나기 바로 직전이 H-Index. import java.util.*; class Solution { public int solution(int[] citations) { int answer = 0; Arrays.sort(citations); int len = citations.length; for (int i = len - 1; i >= 0; i--) { int citation = citations[i]; int iy = len - i; if(iy
굉장히 쉽다고 생각했지만 생각보다 굉장히 오래걸린 풀이... numbers sort return [2, 23, 231] 23 231 2 232312 [3, 321, 32] 3 32 321 332321 [3, 312, 31] 3 31 312 331312 위 처럼 다양한 경우에 따라 정렬이 달라져야 하는데, 처음에생각한 방법은 number의 원소는 최대 1000 이므로 첫번째자리의 숫자로 오른쪽을 다 채운다음 단순정렬. numbers rpad sort return [2, 23, 231] [2(22), 23(2), 231] [23(2), 231, 2(22)] 232312 [3, 321, 32] [3(33), 321, 32(3)] [3(33), 32(3), 321] 332321 [3, 312, 31] [3(33..
하도 막혀서 어떻게든 복잡하게라도 풀어내고 빨리 다른사람 풀이를 보고 싶었던 문제.. 결국 스택과 큐는 사용하지 않았다. 문서의 인덱스와 문서를 조건에 따라 재배치하고 문서의 인덱스를 저장하는 배열에 따로 최종본을 저장하고 그 배열에서 조회할 문서를 다시 찾아온다. import java.util.*; class Solution { public int solution(int[] priorities, int location) { int answer = 0; List docIdx = new ArrayList(); List doc = new ArrayList(); List reIdxDoc = new ArrayList(); for (int i = 0; i < priorities.length; i++) { int ..
각 작업의 소요일자를 구한 후, 선작업 부터 같이 배포가능한 원소들을 뽑아서(소요일자가 자신보다 작은것) 배열에서 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 =..
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 =..
내 블로그 - 관리자 홈 전환 |
Q
Q
|
---|---|
새 글 쓰기 |
W
W
|
글 수정 (권한 있는 경우) |
E
E
|
---|---|
댓글 영역으로 이동 |
C
C
|
이 페이지의 URL 복사 |
S
S
|
---|---|
맨 위로 이동 |
T
T
|
티스토리 홈 이동 |
H
H
|
단축키 안내 |
Shift + /
⇧ + /
|
* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.