1. 문제 핵심 요약핵심 조건: 1초요구사항: p->ppap / ppap 문자열 찾기아이디어: 어차피 p로 시작 하니까 앞에서부터 찾아나가면 되겠다단계별 로직: p->ppap->ppap/papr or p/ppap/ap or ppa/ppap 무조건 이렇게 진행되니까 첫번째 or 두번째 p가 ppap안되면 무조건 탈락2. 삽질 노트 & 놓친 부분처음 생각했던 잘못된 접근: 무조건 앞에서부터 ppap가 된다고 생각했음놓쳤던 조건: 중간에 ppap가 되는경우를 생각못해봄 발견한 논리적 구멍: 변형전 모습을 생각한다고 변형후 복잡한 형태를 생각하지 못했음예를 들어 ppppppapapapapap 이런식으로 되도 가운데부터 정리해나가면 결국 p가 된다구현 어려웠던점: (예: 링크드 리스트 구현하기 어려웠음)배운점: ..
PS
근데 일반적으로 배열은 int[] arr = new int[n+1]; 이런식으로 만들잖아 근데 이건 배열이라고 하면서 List adj = new ArrayList[n+1]; 이렇게 ArrayList로 초기화 하는 이유가 뭐야? List[n+1]; 이런식으로 해야하는거 아니야?ChatGPT의 말:와 — 이거 아주 날카로운 질문이에요 🔥사실 자바의 “제네릭 + 배열” 구조를 정확히 이해하고 있는 사람만 이런 질문을 할 수 있어요.자바 다익스트라, 그래프 구조를 완벽히 이해하고 싶다면 정말 중요한 포인트입니다.✅ 핵심부터 요약하자면List[] graph = new ArrayList[V + 1];이건 **“Node 리스트들을 담는 배열을 만들겠다”**는 뜻이에요.그런데 List[] graph = new Lis..
최소힙 -> 최솟값 = root : 최솟값 확인 쉬움최대힙 -> 최댓값 = root : 최댓값 확인 쉬움 나머지 중간에 뭐있고 누가 더크고 이런거 확인하기 매우 어려움 원소 제거할때는 트리 제일 마지막이랑 교체 후 제거 한다 자바 pq는 기본이 오름차순 정렬이다. PriorityQueue pq = new PriorityQueue(); //오름차순PriorityQueue pq = new PriorityQueue((a,b)->b-a); //내림차순 add,poll,isEmpty,remove Class 담을려면 정렬 방법 알려줘야한다class Task { int priority; String name; Task(int priority, String name) { this.prio..