정렬 문제보다는 국어 문제다. 📜 문제 내용 🤔 과정논문 인용수를 기반으로 한 H-Index가 실제로 어떤 방법으로 도출이 되는 지 알기 때문에 풀기 쉬웠다.H-Index 구하는 과정을 코드로 변경하면서 단위에 집중했다. "편", "번" 단위에 모두 관련되어 있는 지표이므로, "몇 번"보다는 "몇 편"이 직관적으로 배열의 원소 수라고 다가왔다. 그래서 오름차순으로 정렬된 citations 배열을 순회하면서 (현재 인덱스에 해당하는 인용수, "번")가 최초로 (그 인용수 이상으로 인용된 논문 수, "편") 보다 크거나 같을 때, return 시킨다. H-Index 가 나오는 과정 (코드 X) (링크)예시 1) H-Index = 3 인용수(오름차순)0 회1 회3 회5 회6 회위의 논문 인용수 이상 인용..
📜 문제 내용 🤔 과정Queue나 ArrayList를 새로 생성하려다가 의도적으로 간단하게 생각하기 위해서 가지고 있는 배열을 최대한 이용하는 방법을 택했다. 단순히 배열 속 문자열 원소 비교를 이용해 인덱스 놀이를 하면 될 것 같았다. ✨ 최초 제출 답안class Solution { public String solution(String[] cards1, String[] cards2, String[] goal) { int goalLen = goal.length; // 단어 배열을 성공적으로 모두 완성했는 지 판별 여부 boolean flag = true; int idxG = 0; // goals 배열의 인덱스 ..
📜 문제 내용 🤔 과정우선순위 큐를 그냥 생성하면 최솟값 기준의 우선순위 큐가 되어 Collection.reverseOrder() 를 활용해 최댓값 기준 우선순위 큐를 만들어야겠다고 판단. 명령어에 대한 연산은 어렵지 않았고, 삭제 명령 시에 두 우선순위 큐에서 삭제를 해야하므로 remove(값) 을 이용해 둘 다 삭제할 수 있게 했다. ✨ 최초 제출 답안import java.util.*;import java.io.*;class Solution { public int[] solution(String[] operations) { // 최솟값 우선순위 minPq , 최댓값 우선순위 maxPq PriorityQueue minPq = new PriorityQue..
📜 문제 내용 🤔 과정문제만 보고 배열과 Arrays.sort 활용해서 풀까 했지만, 문제의 분류가 "힙"으로 되어있어서 힌트를 얻고 PriorityQueue를 사용하게 되었다.우선순위 큐를 사용해 새로운 값을 offer 하면, 내장 메서드를 통해 알아서 이진트리 형식에 따라 오름차순으로 삽입되게 된다. (진짜 오름차순은 아니다. 이진트리 형식이므로.) 배열을 우선순위 큐에 삽입 -> 가장 맨 앞에 있는(스코빌 지수가 가장 낮은) 음식을 peek하면서 K와 비교하며 반복문 실행 -> 새로운 스코빌 지수 계산한 값을 offer & 섞은 횟수 증가 -> 횟수 or -1 반환 ✨ 최초 제출 답안import java.util.*;import java.io.*;class Solution { public ..
📜 문제 내용 🤔 과정간단한 수식을 통해 작업 수행 기간만을 뽑아내야겠다고 판단. 선순위의 기능이 개발 완료 되어야만 후순위도 같이 배포되므로, FIFO 특징의 queue를 이용해 peek 으로 비교하고, poll 으로 꺼내버리는 방법이 적절하다고 판단. ✨ 최초 제출 답안제출 시 테스트케이스 중 절반이 틀림. 반드시 내 코드 수정할 것. 수정 답안import java.io.*;import java.util.*;class Solution { public int[] solution(int[] progresses, int[] speeds) { // 작업 기간을 담을 queue 생성 Queue qDuration = new LinkedList(); for ..