Algorithm
-
[알고리즘] 프로그래머스 2단계 - 광물캐기Algorithm 2024. 5. 27. 17:33
프로그래머스 문제 링크https://school.programmers.co.kr/learn/courses/30/lessons/172927 문제 설명마인은 곡괭이로 광산에서 광석을 캐려고 합니다. 마인은 다이아몬드 곡괭이, 철 곡괭이, 돌 곡괭이를 각각 0개에서 5개까지 가지고 있으며, 곡괭이로 광물을 캘 때는 피로도가 소모됩니다. 각 곡괭이로 광물을 캘 때의 피로도는 각각 다르다. 예를 들어, 철 곡괭이는 다이아몬드를 캘 때 피로도 5가 소모되며, 철과 돌을 캘때는 피로도가 1씩 소모됩니다. 각 곡괭이는 종류에 상관없이 광물 5개를 캔 후에는 더 이상 사용할 수 없습니다. 마인은 다음과 같은 규칙을 지키면서 최소한의 피로도로 광물을 캐려고 합니다. 사용할 수 있는 곡괭이중 아무거나 하나를 선택해 광물을..
-
[알고리즘] 묘공단 다익스트라 알고리즘Algorithm 2024. 5. 23. 17:44
문제 정보graph배열은 노드의 연결정보와 가중치가 담겨있는 배열이고 start는 시작 노드의 번호가 있다.n은 정수형으로 노드의 개수를 의미한다. 문제 설명시작 노드를 포함한 모든 노드까지의 최단 거리를 순서대로 배열에 담아 리턴 입출력 예제graph{0, 1, 9}, {0, 2, 3}, {1, 0, 5}, {2, 1, 1} start0 n3 result{ 0, 4, 3 } import java.util.*;import java.util.stream.Collectors;public class Solution { public static void main(String[] args) { for (int item : new Solution().solution(new int[][]{{0, 1..
-
[묘공단] 코딩 테스트 합격자 되기 - 그래프Algorithm 2024. 5. 23. 17:05
책 제목 : 코딩 테스트 합격자 되기 자바편지은이 : 김희성 0. 데이터 구조1. 비선형 구조는 계층 구조를 가지며 대표적인 구조가 트리, 그래프가 있다. 2. 선형 구조는 1:1 관계로 쭉 연결 되어있는 자료구조이며 대표적인 구조로 LinkedList, 배열, 스택 등이 있다. 여기서 그래프는 비선형 데이터 구조에 속하며 그래프는 노드(vertex)와 간선(edge)을 이용한 비선형 데이터 구조이다. 1. 그래프의 특징1. 그래프의 간선은 방향성을 갖거나 갖지 않을 수 있다.2. 데이터의 간선에 가중치를 부여할 수 있다. 노드간의 이동 시 비용을 부가 하는 정도라고 생각할 수 있다.3. 간선을 따라서 노드를 돌고 돌다가 다시 원점으로 돌아와 같은 움직임을 반복하는 것을 의미하며 순환을 할 수도 있고마..
-
[알고리즘] 묘공단 깊이 우선 탐색 순회Algorithm 2024. 5. 22. 17:39
문제 정보묘공단 402페이지 예제 문제 설명깊이 우선 탐색으로 모든 그래프의 노드를 순회하는 함수를 작성하시오시작 노드 start, graph는 [출발, 도착] 쌍들이 들어있는 리스트다. 반환 값은 그래프의 시작 노드부터 깊이 우선 탐색으로 진행한 순서대로 노드가 저장된 리스트이다. 입출력 예제graph{1, 2}, {2, 3}, {3, 4}, {4, 5} start1 n5 result{ 1, 2, 3, 4, ,5}import java.util.*;import java.util.stream.Collectors;public class Solution { public static void main(String[] args) { for (int item : new Solution().solu..
-
[알고리즘] 프로그래머스 2단계 - 짝지어 제거하기Algorithm 2024. 5. 21. 16:55
프로그래머스 문제 링크https://school.programmers.co.kr/learn/courses/30/lessons/250121 문제 설명짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그다음, 그 둘을 제거한 뒤, 앞뒤로 문자열을 이어 붙입니다. 이 과정을 반복해서 문자열을 모두 제거한다면 짝지어 제거하기가 종료됩니다. 문자열 S가 주어졌을 때, 짝지어 제거하기를 성공적으로 수행할 수 있는지 반환하는 함수를 완성해 주세요. 성공적으로 수행할 수 있으면 1을, 아닐 경우 0을 리턴해주면 됩니다. 예를 들어, 문자열 S = baabaa 라면 b aa baa → bb aa → aa → 의 순서로 문자열을 모두 제..
-
[알고리즘] 프로그래머스 2단계 - 주식 가격Algorithm 2024. 5. 20. 13:39
프로그래머스 문제 링크https://school.programmers.co.kr/learn/courses/30/lessons/250121 문제 설명초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return 하도록 solution 함수를 완성하세요. 제한사항 prices의 각 가격은 1 이상 10,000 이하인 자연수입니다. prices의 길이는 2 이상 100,000 이하입니다. 예시 prices[1, 2, 3, 2, 3] return[4, 3, 1, 1, 0] import java.util.*;import java.util.stream.Collectors;public class Solution { public static vo..
-
[알고리즘] 프로그래머스 2단계 - adenCase 문자열 만들기Algorithm 2024. 5. 17. 16:07
프로그래머스 문제 링크https://school.programmers.co.kr/learn/courses/30/lessons/12951 문제 설명JadenCase란 모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳은 소문자인 문자열입니다. 단, 첫 문자가 알파벳이 아닐 때에는 이어지는 알파벳은 소문자로 쓰면 됩니다. (첫 번째 입출력 예 참고) 문자열 s가 주어졌을 때, s를 JadenCase로 바꾼 문자열을 리턴하는 함수, solution을 완성해주세요. 제한 조건 s는 길이 1 이상 200 이하인 문자열입니다. s는 알파벳과 숫자, 공백문자(" ")로 이루어져 있습니다. 숫자는 단어의 첫 문자로만 나옵니다. 숫자로만 이루어진 단어는 없습니다. 공백문자가 연속해서 나올 수 있습니다. 예제 s"3peo..
-
[알고리즘] 프로그래머스 1단계 - [PCCE 기출문제] 10번 / 데이터 분석Algorithm 2024. 5. 16. 16:55
프로그래머스 문제 링크https://school.programmers.co.kr/learn/courses/30/lessons/250121 문제 설명AI 엔지니어인 현식이는 데이터를 분석하는 작업을 진행하고 있습니다. 데이터는 ["코드 번호(code)", "제조일(date)", "최대 수량(maximum)", "현재 수량(remain)"]으로 구성되어 있으며 현식이는 이 데이터들 중 조건을 만족하는 데이터만 뽑아서 정렬하려 합니다. 정렬한 데이터들이 담긴 이차원 정수 리스트 data와 어떤 정보를 기준으로 데이터를 뽑아낼지를 의미하는 문자열 ext, 뽑아낼 정보의 기준값을 나타내는 정수 val_ext, 정보를 정렬할 기준이 되는 문자열 sort_by가 주어집니다. data에서 ext 값이 val_ext보다..