[Summer/Winter Coding(~2018)] 배달
[Summer/Winter Coding(~2018)] 배달 🙋♂️ 들어가며 이번 문제는 한 조건을 잘 읽어보자 각 마을은 양방향으로 통행할 수 있는 도로로 연결되어 있는데 ✅ 코드 // dijikstra import java.util.PriorityQueue; import java.util.List; import java.util.Arra...
[Summer/Winter Coding(~2018)] 배달 🙋♂️ 들어가며 이번 문제는 한 조건을 잘 읽어보자 각 마을은 양방향으로 통행할 수 있는 도로로 연결되어 있는데 ✅ 코드 // dijikstra import java.util.PriorityQueue; import java.util.List; import java.util.Arra...
🙋♂️ 들어가며 이번에는 prim에 대해 알아보자 가중치 (비용, 거리)가 나온다고 항상 헷갈리지말자 dijikstra -> 특정 노드까지 도달할때의 최소거리 prim -> 전체를 최소 비용으로 연결 (양방향 필수) 특징 prim은 오름차순을 하기 때문에 visited[]만 활용하면 되겠다 dijikstra처럼 값 비교가 필요 없겠...
[Summer/Winter Coding(~2018)] 스킬트리 🙋♂️ 들어가며 이번 문제는 조건별 분기만 잘 작성하면 되는 문제다 ✅ 코드 class Solution { public int solution(String skill, String[] skill_trees) { int answer = 0; int...
[Summer/Winter Coding(~2018)] 소수만들기 🙋♂️ 들어가며 이번 문제는 백트랙킹과 소수 판별식을 활용하는 문제다 ✅ 코드 class Solution { static int answer; static int N; public int solution(int[] nums) { answ...
🙋♂️ 들어가며 이번 시간에는 dijikstra를 배워보자 우선 이를 이해하기 위해서는 Priority Queue의 선행학습이 되어있어야할 것이다. 모른다면 이전의 Pritority Queue 관련 글을 보고 오자 dijikstra는 최소비용을 구할 때 많이 쓰인다. 위 그림을 토대로 아래에 구현해보자 ✅ 코드 import java....
🙋♂️ 들어가며 이번문제를 통해 내 능지를 파악해보자 문자열 = “o t o o f o f o o o o t” target = {‘t’, ‘f’, ‘t’} d = 5; 라고 가정하자 이때 target의 순서대로 d이내 거리만큼 문자열이 연결되면 1을 반환 그렇지 못하면 0을 반환하자 조건 문자열 arr의 길이 N (1 ≤ N ≤ 1...
🙋♂️ 들어가며 이번 시간에는 PriorityQueue를 배워보자 Q는 FIFO인데, 그와 달리 PQ는 정렬을 통해 오름차순, 내림차순으로도 가능하다 heap 기반으로 시간복잡도는 다음과 같다 삽입 (offer) -> O(log N) 삭제 (poll) -> O(log N) 조회 (peek) -> O(1) ✅ 코드 publ...
🕵️ 침묵의 취조실 문제 배경 국가 보안급 대형 사건에 연루된 용의자 $N$명이 취조실에 모여 있습니다. 이들 중에는 수사망을 교묘하게 빠져나가려는 범인 $K$명이 숨어 있으며, 나머지 인원은 무고한 시민입니다. 당신은 각 용의자가 서로를 지목한 취조 기록(arr) 을 가지고 범인들의 정체를 밝혀내야 합니다. 예를들어 5명의 용의자가 있으며 범인...
[월간 코드 챌린지 시즌2] 괄호 회전하기 🙋♂️ 들어가며 이번 문제는 각 idx별로 N길이만큼 보는 stack 응용 문제다 해당 코드는 stack 구현으로 작성되어 라이브러리 X 다 먼저 생각해볼 조건은 다음과 같다. 1. 여는 괄호일 때 -> 무조건 추가 2. 닫는 괄호일 때 2-1. 스택이 빈칸이라면 불가능 -> 반례 )...
[탐욕법(Greedy)] 조이스틱 🙋♂️ 들어가며 이번 문제는 정방향(오른쪽으로) vs 반대방향(왼쪽으로) 생각하는게 참 어려운 문제였다. ✅ 코드 class Solution { public int solution(String name) { int cnt = 0; int N = name.length(); ...
