본문 바로가기
728x90

컴공생의 Knowledge/Algoritm Solution54

[프로그래머스] 탐욕법(Greedy) - 섬 연결하기 문제 풀이 오늘은 프로그래머스에서 탐욕법(Greedy) 문제 중 섬 연결하기 문제 풀이를 시작해보겠습니다. 탐욕법 문제는 항상 문제 설명에 답이 나와있지 않고 색다른 방안을 고안하여 알고리즘을 만드는 것이 중요하다고 생각되어 어려워하는 문제이지만 열심히 풀이를 하여 공부해보겠습니다. 프로그래머스 > 탐욕법(Greedy) > 섬 연결하기 문제 풀이 ∞ 문제 정보 n개의 섬 사이에 다리를 건설하는 비용(costs)이 주어질 때, 최소의 비용으로 모든 섬이 서로 통행 가능하도록 만들 때 필요한 최소 비용을 return 하도록 solution을 완성하세요. 다리를 여러 번 건너더라도, 도달할 수만 있으면 통행 가능하다고 봅니다. 예를 들어 A 섬과 B 섬 사이에 다리가 있고, B 섬과 C 섬 사이에 다리가 있으면 A 섬과.. 2022. 7. 13.
[프로그래머스] 힙(Heap) - 이중우선순위큐 문제 풀이 오늘은 프로그래머스에서 힙(Heap) 문제 중 이중우선순위큐 문제 풀이를 해보겠습니다. 문제에서 이미 해결 방법이 나와있어보이지만 처음 들어보는 자료구조인 이중 우선순위 큐이므로 문제를 이해하는 것부터 알고리즘 만들기, 코드 구현까지 천천히 진행해보겠습니다. 프로그래머스 > 힙(Heap) > 이중우선순위큐 문제 풀이 ★ 문제 정보 문제명: 이중우선순위큐 문제 난이도: Level 3 문제 푼 사람수: 12419명 사용 가능 언어: 11개 (JavaScript 사용) ★ 문제 설명 이중 우선순위 큐는 다음 연산을 할 수 있는 자료구조를 말합니다. 명령어 수신 탑(높이) I 숫자 큐에 주어진 숫자를 삽입합니다. D 1 큐에서 최댓값을 삭제합니다. D -1 큐에서 최솟값을 삭제합니다. 이중 우선순위 큐가 할 연.. 2022. 7. 12.
[프로그래머스] 힙 - 디스크 컨트롤러 문제 풀이 오늘은 프로그래머스에서 힙 문제 중 Level 3의 난이도를 가진 디스크 컨트롤러 문제 풀이를 해보겠습니다. 오늘 문제도 쉽지 않아 보이지만, 제가 깔끔한 알고리즘을 통해 코드 구현하여 아름다운 문제 풀이가 되도록 노력하겠습니다. 프로그래머스 > 힙(Heap) > 디스크 컨트롤러 문제 풀이 ☎ 문제 정보 문제명: 디스크 컨트롤러 문제 난이도: Level 3 문제 푼 사람 수: 11815명 사용 가능 언어: 11개 (JavaScript 사용) ☎ 문제 설명 하드디스크는 한 번에 하나의 작업만 수행할 수 있습니다. 디스크 컨트롤러를 구현하는 방법은 여러 가지가 있습니다. 가장 일반적인 방법은 요청이 들어온 순서대로 처리하는 것입니다. 예를들어 - 0ms 시점에 3ms가 소요되는 A작업 요청 - 1ms 시점에.. 2022. 7. 11.
[프로그래머스] 해시 - 베스트앨범 문제 풀이 오늘은 처음으로 Level 3 난이도 문제 풀이를 시작하겠습니다. Level 3 난이도 첫 문제는 해시 알고리즘을 활용하는 문제 중 베스트앨범입니다. 그럼 베스트앨범 문제 풀이를 시작하겠습니다. 프로그래머스 > 해시 > 베스트앨범 문제 풀이 ‡ 문제 정보 문제명: 베스트앨범 문제 난이도: Level 3 문제 푼 사람 수 : 22221명 사용 가능 언어: 11개 (JavaScript 사용) ‡ 문제 설명 스트리밍 사이트에서 장르 별로 가장 많이 재생된 노래를 두 개씩 모아 베스트 앨범을 출시하려 합니다. 노래는 고유 번호로 구분하며, 노래를 수록하는 기준은 다음과 같습니다. 1. 속한 노래가 많이 재생된 장르를 먼저 수록합니다. 2. 장르 내에서 많이 재생된 노래를 먼저 수록합니다. 3. 장르 내에서 재생.. 2022. 7. 9.
[프로그래머스] 깊이/너비 우선 탐색 - 타겟 넘버 문제 풀이 오늘은 프로그래머스에서 처음 다룰 깊이/너비 우선 탐색(DFS/BFS) 문제 중 타겟 넘버 문제 풀이를 해보겠습니다. 이 문제의 포인트는 깊이/너비 우선 탐색(DFS/BFS) 알고리즘을 활용하여 문제를 풀이하는 것입니다. 그럼 타겟 넘버 문제 풀이 시작해보겠습니다. 프로그래머스 > 깊이/너비 우선 탐색(DFS/BFS) > 타겟 넘버 문제 풀이 ♥ 문제 정보 문제명: 타겟 넘버 문제 난이도: Level 2 문제 푼 사람 수: 32342명 사용 가능 언어: 11개 (JavaScript 사용) ♥ 문제 설명 n개의 음이 아닌 정수들이 있습니다. 이 정수들을 순서를 바꾸지 않고 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 .. 2022. 7. 8.
[프로그래머스] 탐욕법 - 구명보트 문제 풀이 오늘은 프로그래머서에서 탐욕법 문제 중 구명보트 문제 풀이를 해보겠습니다. 구명보트의 제목으로 어떤 문제가 나올지 정말 궁금합니다. 탐욕법 문제 난이도 2단계 마지막 문제입니다. 그럼 문제 풀이 시작해보겠습니다. 프로그래머스 > 탐욕법 > 구명보트 문제 풀이 ▒ 문제 정보 문제명: 구명보트 문제 난이도: Level 2 문제 푼 사람 수: 15433명 사용 가능 언어: 4개 (JavaScript 사용) 이번 문제의 사용 가능 언어가 4개로 정말 적습니다. 그 중에 저의 주 언어인 JavaScript가 있다는게 너무 좋네요~ ▒ 문제 설명 무인도에 갇힌 사람들을 구명보트를 이용하여 구출하려고 합니다. 구명보트는 작아서 한 번에 최대 2명씩 밖에 탈 수 없고, 무게 제한도 있습니다. 예를 들어, 사람들의 몸무.. 2022. 7. 7.
[프로그래머스] 탐욕법 - 큰 수 만들기 문제 풀이 오늘은 프로그래머스에서 탐욕법 문제 중 "큰 수 만들기" 문제 풀이를 해보겠습니다. 과연 이번 큰 수 만들기 문제는 어떤 알고리즘으로 풀어나갈지 궁금합니다. 수의 조합을 통해 가장 큰 수를 만드는 그런 문제이지 않을까 감히 예상해봅니다. 프로그래머스 > 탐욕법 > 큰 수 만들기 문제 풀이 ♬ 문제 정보 문제명: 큰 수 만들기 문제 난이도: Level 2 문제 푼 사람수: 15909명 사용 가능 언어: 12개 (JavaScript 사용) ♬ 문제 설명 어떤 숫자에서 k개의 수를 제거했을 때 얻을 수 있는 가장 큰 숫자를 구하려 합니다. 예를 들어, 숫자 1924에서 수 두 개를 제거하면 [19, 12, 14, 92, 94, 24] 를 만들 수 있습니다. 이 중 가장 큰 숫자는 94 입니다. 문자열 형식으로.. 2022. 7. 6.
[프로그래머스] 탐욕법 - 조이스틱 문제 풀이 오늘은 프로그래머스에서 탐욕법 문제 중 조이스틱 문제 풀이를 해보겠습니다. 부분적인 알고리즘을 도출하여 전체에 적용하면 문제가 풀리는 그런 탐욕법 알고리즘의 문제입니다. 그럼 문제 풀이를 시작하겠습니다. 프로그래머스 > 탐욕법 > 조이스틱 문제 풀이 ∑ 문제 정보 문제명: 조이스틱 문제 난이도: Level 2 문제 푼 사람수: 11533명 사용 가능 언어: 11개 (JavaScript 사용) ∑ 문제 설명 조이스틱으로 알파벳 이름을 완성하세요. 맨 처음엔 A로만 이루어져 있습니다. ex) 완성해야 하는 이름이 세 글자면 AAA, 네 글자면 AAAA 조이스틱을 각 방향으로 움직이면 아래와 같습니다. ▲ - 다음 알파벳 ▼ - 이전 알파벳 (A에서 아래쪽으로 이동하면 Z로) ◀ - 커서를 왼쪽으로 이동 (첫.. 2022. 7. 5.
[프로그래머스] 완전탐색 - 카펫 문제 풀이 오늘은 프로그래머스에서 완전탐색 문제 중 마지막 문제인 카펫 문제 풀이를 해보겠습니다. 오늘 문제로 완전탐색 관련 문제가 끝난다니 아쉬우실수도 있지만, 우리가 풀 문제들은 다양하고 많으니 함께 계속 공부했으면 좋겠습니다. 프로그래머스 > 완전탐색 > 카펫 문제 풀이 ◈ 문제 정보 문제명: 카펫 문제 난이도: Level 2 문제 푼 사람수: 23752명 사용 가능 언어: 11개 (JavaScript 사용) ◈ 문제 설명 Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으로 돌아와서 아까 본 카펫의 노란색과 갈색으로 색칠된 격자의 개수는 기억했지만, 전체 카펫의 크기는 기억하지 못했습니다. Leo가 본 .. 2022. 7. 4.
728x90