🔗 실패율import java.util.*;class Solution { public int[] solution(int N, int[] stages) { // N : 전체 스테이지 개수 // stages : 사용자 당 현재 멈춰있는 스테이지 번호 // 실패율이 높은 스테이지부터 스테이지 번호 정렬 //실패율 //=스테이지에 도달했으나 아직 클리어하지 못한 플레이어의 수/스테이지에 도달한 플레이어 수 // 스테이지 당 실패율 Map fail=new HashMap(); for(int i=0;iDouble.compare(o2.getValue(),o1.getValue())) .mapT..
↗️ 배열 관련 함수정리인덱스와 값을 일대일 대응해 관리하는 자료구조임의 접근(random access) : 어떤 위치에 있는 데이터든 한 번에 접근 가능배열 선언//int형 배열 선언int[] arr = {0,0,0};//방법1int[] arr = new int[3];// 방법2// 배열 선언 및 초기화int[] arr = new int[3];arr[0] = 1;arr[1] = 2;arr[2] = 3;// 2차원 배열int[][] arr = {{1,2,3}, {4,5,6}};✨ ArrayList배열과 유사한 기능을 가진 자료구조Array : 처음 선언할 때 배열의 크기 결정 ⇒ 정확한 데이터 개수를 알 수 있을 때ArrayList : 크기가 동적 ⇒ 저장해야 할 데이터의 개수를 정확히 알 수 없을 때⚠..
🔗 [1차] 뉴스 클러스터링 import java.util.*;class Solution { public int solution(String str1, String str2) { String []arr1=toArr(str1); String []arr2=toArr(str2); int sum= 0;//합집합 개수 int cross=0;//교집합 개수 double answer=0; Mapmap1=new HashMap(); Mapmap2=new HashMap(); for(int i=0;ilist=new ArrayList(); int i=0; while(true){ ..
🔗 배달import java.util.*;class Solution { public int solution(int N, int[][] road, int K) { // 그래프를 인접 리스트 형태로 초기화 List> graph = new ArrayList(); for (int i = 0; i ()); } for (int[] r : road) { int a = r[0], b = r[1], c = r[2]; graph.get(a).add(new int[] { b, c });//도착 노드, 시간 graph.get(b).add(new int[] { a, c }); } ..
시작 노드에서 다른 모든 노드까지의 최단 경로를 찾는 알고리즘⚠️ 음의 가중치를 가지지 않는 그래프에서만 동작(음의 가중치 → Bellman-Ford Algorithm)🔎 핵심그래프 : edge에는 weight(가중치) 존재최단 경로탐욕 알고리즘 기반 : 현재 가장 비용이 적은 경로를 우선적 탐색🔎 Flow초기화시작 노드의 최단 거리 = 0나머지 모든 노드의 거리 = ∞방문하지 않은 노드 배열(or 우선순위 큐 생성)방문 처리최단 거리 업데이트 필요 없는 노드는 방문 완료로 처리방문하지 않은 노드 중 최단 거리가 가장 작은 노드를 선택해 탐색최단 거리 업데이트현재 노드에서 연결된 인접 노드들의 최단 거리 계산 → 기존의 최단 거리보다 작다면 갱신모든 노드를 방문할 때까지 반복🔎 배열import ja..
🔗 가장 큰 정사각형 찾기 dp는 해당 위치에서 확장가능한 정사각형의 한 변의 길이를 저장첫 행, 첫 열은 board 배열과 동일하게 함dp[i][j] 을 기준으로 위쪽, 왼쪽, 대각선 위치의 dp에서 가능한 한 변의 길이를 확인대각선으로 확장되므로 최솟값으로 저장해야 함이때, 한 변이 증가 되므로 최솟값+1🔎 점화식dp[n] = min( dp[i-1][j-1] , dp[i-1][j], dp[i][j-1] ) + 1class Solution{ public int solution(int [][]board) { int rows=board.length; int cols=board[0].length; // 최대 한 변의 길이 int area=0; ..