목록우선순위큐 (3)
개발 무지렁이

더 맵게 🪅 매번 배열의 원소를 제거하고 넣고, 정렬해야하는 조건에서 우선순위 큐를 생각해 낼 수 있느냐 🪅 같은 동작을 반복해서 해야할 때 이를 메서드로써 만들 수 있느냐 🪅 항상 처음과 끝은 예외상황이 발생할 수 있는 것을 확인했느냐 💡 문제 접근 과정 음식 개수에 따라 scoville 최초 배열의 길이가 달라지고 한 번 스코빌 지수를 섞을 때마다, 배열의 길이가 1씩 줄어든다. 이 조건을 봤을 때 가변길이 배열(ArrayList)을 써야겠다는 생각이 들었다. 이 자료구조를 썼더니 매번 정렬해줘야돼서인지(?) 효율성테스트를 통과하지 못했다. (중간에 모든!! 음식의 스코빌 지수가 K이상이어야하는 조건을 놓쳐서 많이 헤맸다) 즉, 자료구조에 원소를 넣을 때마다 정렬을 해주는 자료구조가 무엇인지 생각해봤..

인터페이스인 Comparable Comparable에는 compareTo(T o) 메서드가 선언되어 있다. 이 메서드는 '자기자신'과 '매개변수 객체'를 비교한다. ❓ 인터페이스 : 추상성 100%인 클래스를 말한다. (단, 인터페이스 내에 선언된 메서드를 반드시 구현해야한다.) compareTo는 int를 반환한다 - '양수'를 반환: 자기자신이 매개변수 객체보다 크다 - '0'을 반환: 자기자신이 매개변수 객체와 같다 - '음수'를 반환: 자기자신이 매개변수 객체보다 작다Comparable 활용 예제 🎯 우선순위 큐에서 Node클래스의 compareTo을 기준으로 삼아 자동정렬한다. PriorityQueue pq = new PriorityQueue(); cl..

최단거리를 구하는 다익스트라(Dijkstra) 알고리즘 시작노드와 나머지 노드 간의 최단거리를 탐색하는 알고리즘을 다익스트라 알고리즘이라고 한다. (단, 이때 엣지가 모두 양수여야한다.) 🕑 시간복잡도: O(V^2) (V:노드수, E:간선수) [ O(ElogV): 우선순위 큐 이용시 ] 다익스트라(Dijkstra)와 우선순위 큐(Priority Queue) 다익스트라 알고리즘은 '우선순위 큐(Priority Queue)'로 구현하며, '우선순위 큐(Priority Queue)'란 데이터가 새롭게 들어올 때마다 '자동으로 정렬'하는 큐를 말한다. 정렬 기준은 Node클래스의 'compareTo() 함수'를 통해 설정할 수 있다.다익스트라(Dijkst..