[프로그래머스 알고리즘 고득점 Kit][이분탐색][Java] 징검다리
·
알고리즘 & 자료구조/이분 탐색
https://school.programmers.co.kr/learn/courses/30/lessons/43236 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.krhttps://www.acmicpc.net/problem/2110백준의 공유기 설치와 동일한 문제하지만 징검다리가 문제는 억지로 끼워맞춘 느낌이라 이해하기 쉽지 않았음 1. 정답 코드문제를 조금 이해하기 쉽게 나의 언어로 바꿔 말한다면,임의의 위치의 바위를 n개 부쉈을 때시작점, 바위들, 도착지 사이의 거리들을 나열할 수 있다.그 거리들 중에는 항상 최소가 되는 거리가 있는데,이 문제는 그 최소 거리가 최대가 되게 만드는 문제다.예를 들어,출발지점 - 바..
[프로그래머스 알고리즘 고득점 Kit][그래프][Java] 순위
·
알고리즘 & 자료구조/그래프
https://school.programmers.co.kr/learn/courses/30/lessons/49191 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 1. 정답 코드 뭔가 스태틱 변수를 안쓰고 메서드로 분리하려다 보니 복잡해졌는데내가 이긴 사람 수와 내가 진 사람 수의 합이 나를 제외한 n-1 과 같으면 순위를 알 수 있다.그래서 2개의 단방향 그래프를 기록하고 bfs 2번을 돌리는 식으로 계산했다.모든 노드의 거리를 알 수 있는 플로이드 워셜로도 풀 수 있다.import java.util.*;class Solution { public int solution(int n, int[][] resul..
[프로그래머스 알고리즘 고득점 Kit][힙(Heap)][Java] 더 맵게
·
알고리즘 & 자료구조/힙
https://school.programmers.co.kr/learn/courses/30/parts/12117 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 1. 정답 코드작은 것부터 활용해야하기 때문에우선순위큐를 활용했음처음에 틀렸을 땐 2개씩 꺼내야하는데!pq.isEmpty() 로 종료조건을 걸어서 틀림import java.util.*;class Solution { public int solution(int[] scoville, int K) { PriorityQueue pq = new PriorityQueue((s1, s2) -> { return Long.compare(..
[프로그래머스 알고리즘 고득점 Kit][깊이/너비 우선 탐색(DFS/BFS)][Java] 네트워크
·
알고리즘 & 자료구조/BFS
https://school.programmers.co.kr/learn/courses/30/lessons/43162 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 정답 코드 그래프를 만들어서 각 숫자마다 bfs로 연결된 부분을 방문체크를 하고 0 ~ n-1 에서 bfs 메서드가 발동된 부분을 세어주면된다.나는 이 방법보단 유니온파인드(분리집합)이 먼저 생각이 들었기 때문에 각 연결점을 union 해주고부모노드를 저장하는 p 배열의 루트의 갯수(음수로 랭크를 관리)가 네트워크의 갯수가 된다.import java.util.*;class Solution { int[] p; public int ..
[프로그래머스 알고리즘 고득점 Kit][그래프][Java] 가장 먼 노드
·
알고리즘 & 자료구조/그래프
https://school.programmers.co.kr/learn/courses/30/lessons/49189 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr정답 코드문제를 대충 읽어서 최단 거리로 이동했을 때 가장 먼 노드들의 개수를 구하는 건데가장 먼 노드의 거리를 구했었다가 틀리고 바로 수정 bfs로 1번 노드에서 각 노드에 도달하기까지 지나온 최소 개수를 count배열로 저장하고가장 많이 지나온(가장 먼) 노드를 찾기 위해 max 로 최대를 계속 업데이트해주고마지막에 count 배열에 max와 같은 가장 멀리 떨어져 있는 노드들의 개수를 세고 반환해 준다.import java.util.*;class S..
[프로그래머스 알고리즘 고득점 Kit][완전탐색][Java] 최소직사각형
·
알고리즘 & 자료구조/완전 탐색
https://school.programmers.co.kr/learn/courses/30/lessons/86491 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 정답 코드가장 긴 변을 찾으면 모든 명함의 가로 세로 중 긴 변을 포함할 수 있다.그러면 명함들의 긴 변들을 가장 긴 변에 맞춰 넣고나머지 변들 중에 최대가 나머지 사이즈가 될 것이다. 나는 스왑을 하긴 했지만 다하고 나니 그냥widthMax = Math.max(widthMax, Math.max(sizes[i][0], sizes[i][1])); heightMax = Math.max(heightMax, Math.min(sizes[i][0], size..