프로그래머스 9

프로그래머스 가장 먼 노드

문제 : https://programmers.co.kr/learn/courses/30/lessons/49189 풀이 : ① BFS를 이용해 1부터 특정 노드까지의 경로를 탐색 후 거리를 저장 ② 탐색한 거리 중 가장 먼 거리의 갯수를 세어 반환 2021.09.19 - [알고리즘/알고리즘] - 너비 우선 탐색 Breath-first Search BFS 구현JAVA import java.util.*; class Solution { public int solution(int n, int[][] edges) { // 방문여부를 저장할 배열 boolean[] isVisited = new boolean[n+1]; // 지점별 1과의 거리를 저장할 배열 int[] distance = new int[n+1]; //ed..

프로그래머스 단어변환

문제 : https://programmers.co.kr/learn/courses/30/lessons/43163 코딩테스트 연습 - 단어 변환 두 개의 단어 begin, target과 단어의 집합 words가 있습니다. 아래와 같은 규칙을 이용하여 begin에서 target으로 변환하는 가장 짧은 변환 과정을 찾으려고 합니다. 1. 한 번에 한 개의 알파벳만 바꿀 수 programmers.co.kr 풀이 : ① DFS를 이용핸 도달할 수 있는 모든 경로를 탐색. ② 탐색 한 경로의 최소값을 출력 2021.09.19 - [알고리즘/알고리즘] - 깊이 우선 탐색 Depth-first search 깊이 우선 탐색 Depth-first search 깊이 우선 탐색 시작 노드와 직접 연관된 하위 노드 끝까지 모두 ..

프로그래머스 네트워크

문제 : https://programmers.co.kr/learn/courses/30/lessons/43162 코딩테스트 연습 - 네트워크 네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있 programmers.co.kr 풀이 : BFS를 이용해 지점을 잇는 경로를 탐색 ① 지점을 잇는 경로를 탐색한다. ② ①에서 탐색되지 않은 지점를 시작으로 재탐색한다. * computer[i][i] 가 1이므로, 어느 지점과 연결되지 않으면 자기자신하고만 연결되는 경로 (네트워크) 1개가 세어진다. 2021.09.19 - [알고리즘/알고리즘] - 너비 우선 탐색 Breath-f..

프로그래머스 정수 삼각형

문제 https://programmers.co.kr/learn/courses/30/lessons/43105 코딩테스트 연습 - 정수 삼각형 [[7], [3, 8], [8, 1, 0], [2, 7, 4, 4], [4, 5, 2, 6, 5]] 30 programmers.co.kr 풀이 : 동적 계획법 Dynamic Programming ① 2번째 줄부터 시작 이전 단계 값들 중에 가장 큰 값과 현재 갑을 더해서 저장한다. 이전 단계 값 ( y = 현재 위치 or y = 현재위치 -1) ex) (0,1)의 이전 단계 값 : (0,0) / (1,1)의 이전단계값 : (0,0) / (2,1)의 이전단계 값 : (1,1), (1,0) ② 마지막 단계(리프노드) 값 중 최대값을 출력한다. 참조 동적계획법, 위키백과 ..

프로그래머스 단속카메라

https://programmers.co.kr/learn/courses/30/lessons/42884 코딩테스트 연습 - 단속카메라 [[-20,15], [-14,-5], [-18,-13], [-5,-3]] 2 programmers.co.kr 풀이 : 탐욕 알고리즘 ① 구간 시작위치가 가장 먼저인 구간부터 차례로 비교하면서 카메라의 설치 구간을 탐색 ② 카메라가 설치된 구간과 route(자동차 통과구간)를 비교하면서 카메라 설치 구간을 줄여나감. ③ 겹치는 구간이 없으면 자동차 통과구간을 카메라 설치구간에 추가함. 구현 JAVA import java.util.*; public int solution(int[][] routes) { //먼저 빠져나가는 거리 순으로 정렬 Arrays.sort(routes, (..

프로그래머스 섬 연결하기

https://programmers.co.kr/learn/courses/30/lessons/42861 코딩테스트 연습 - 섬 연결하기 4 [[0,1,1],[0,2,2],[1,2,5],[1,3,1],[2,3,8]] 4 programmers.co.kr 풀이 : 탐욕 알고리즘 / 프림 알고리즘 / 최소신장트리 찾기 참고 : 2021.09.20 - [알고리즘/알고리즘] - 탐욕 알고리즘 Greedy Algorithm 탐욕 알고리즘 Greedy Algorithm 탐욕 알고리즘 현재 상황에서 가장 좋아보이는 답을 선택하는 방법. 상황마다 최적을 선택하면 전체 결과값도 최적이 될것이라는 가정을 전제로 함. ① 각 단계에 도달할 때 마다, 최적의 결과 mantaray.tistory.com class Solution {..

프로그래머스 SQL 고득점 Kit 문제 모음 2

IS NULL 이름이 없는 동물의 ID : https://programmers.co.kr/learn/courses/30/lessons/59039 SELECT ANIMAL_ID FROM ANIMAL_INS WHERE NAME IS NULL ORDER BY ANIMAL_ID; 이름이 있는 동물의 ID : https://programmers.co.kr/learn/courses/30/lessons/59407 SELECT ANIMAL_ID FROM ANIMAL_INS WHERE NAME IS NOT NULL ORDER BY ANIMAL_ID; NULL 처리하기 : https://programmers.co.kr/learn/courses/30/lessons/59410 [ORACLE] SELECT ANIMAL_TYPE..

프로그래머스 SQL 고득점 Kit 문제 모음 1

SELECT 모든 레코드 조회하기 : https://programmers.co.kr/learn/courses/30/lessons/59034 SELECT * FROM ANIMAL_INS ORDER BY ANIMAL_ID; 역순 정렬하기 : https://programmers.co.kr/learn/courses/30/lessons/59035 SELECT NAME, DATETIME FROM ANIMAL_INS ORDER BY ANIMAL_ID DESC; 아픈 동물 찾기 : https://programmers.co.kr/learn/courses/30/lessons/59036 SELECT animal_id, name FROM animal_ins WHERE intake_condition = 'sick' ORDER ..