본문 바로가기
728x90

컴공생의 Knowledge60

[프로그래머스] 스택/큐 - 같은 숫자는 싫어 문제 풀이 (feat.JS) 오늘은 프로그래머스에서 스택/큐 문제 중 신규로 추가된 "같은 숫자는 싫어" 문제 풀이를 해보겠습니다. 같은 숫자가 싫어 문제는 과연 어떤 문제인지 궁금하기에 먼저 문제 정보부터 확인하도록 하겠습니다. 프로그래머스 > 스택/큐 > 같은 숫자는 싫어 문제 풀이 ♭ 문제 정보 문제명: 같은 숫자는 싫어 문제 난이도: Level 1 문제 푼 사람 수: 31386명 사용 가능 언어: 4개 (JavaScript 사용) ♭ 문제 설명 배열 arr가 주어집니다. 배열 arr의 각 원소는 숫자 0부터 9까지로 이루어져 있습니다. 이때, 배열 arr에서 연속적으로 나타나는 숫자는 하나만 남기고 전부 제거하려고 합니다. 단, 제거된 후 남은 수들을 반환할 때는 배열 arr의 원소들의 순서를 유지해야 합니다. 예를 들면, .. 2022. 7. 19.
[프로그래머스] 해시 - 폰켓몬 문제 풀이 오늘도 문제를 풀려고 프로그래머스에 들어갔는데, 코딩테스트 고득점 Kit 문제가 추가된 것 같아 다시 난이도가 낮은 문제 부터 풀어보도록 하겠습니다. 그래서 오늘은 다시 해시로 돌아가 폰켓몬 문제 풀이를 시작하도록 하겠습니다. 프로그래머스 > 해시 > 폰켓몬 문제 풀이 ▩ 문제 정보 문제명: 폰켓몬 문제 난이도: Level 1 문제 푼 사람 수: 19266명 사용 가능 언어: 4개 (JavaScript 사용) ▩ 문제 설명 당신은 폰켓몬을 잡기 위한 오랜 여행 끝에, 홍 박사님의 연구실에 도착했습니다. 홍 박사님은 당신에게 자신의 연구실에 있는 총 N 마리의 폰켓몬 중에서 N/2마리를 가져가도 좋다고 했습니다. 홍 박사님 연구실의 폰켓몬은 종류에 따라 번호를 붙여 구분합니다. 따라서 같은 종류의 폰켓몬은.. 2022. 7. 18.
[프로그래머스] 탐욕법(Greedy) - 단속카메라 문제 풀이 오늘은 프로그래머스에서 탐욕법 문제 중 마지막 문제인 단속카메라 문제 풀이를 진행해보겠습니다. 이제 하나하나의 테마들이 마무리가 되어가는 느낌이 들어 뭔가 문제 풀이가 끝나가는 느낌이지만, 저에게는 아직 많은 문제들이 남아있습니다. 그러니 함께 같이 공부해보기 바랍니다. 프로그래머스 > 탐욕법(Greedy) > 단속카메라 문제 풀이 ▣ 문제 정보 문제명: 단속카메라 문제 난이도: Level 3 문제 푼 사람 수: 7372명 사용 가능 언어: 4개 (JavaScript 사용) 이 문제 정보에서 특이점은 사용 가능 언어가 C++, Java, JavaScript, python3 뿐입니다. 그리고 지금까지 푼 문제 중 문제 푼 사람 수가 가장 적다는 점입니다. 정말 문제가 기대되고 궁금합니다. ▣ 문제 설명 고.. 2022. 7. 17.
프림 알고리즘(Prim's Algorithm)을 알아보자 오늘은 지난번 섬 연결하기 문제에서 다뤘던 프림 알고리즘에 대해 알아보겠습니다. 프림 알고리즘이란? 프림 알고리즘은 가중치가 있는 연결된 무향 그래프의 모든 꼭짓점을 포함하면서 각 변의 비용 합이 최소가 되는 부분 그래프인 트리, 즉 최소 비용 신장 트리(Minimum Spanning Tree)를 찾는 알고리즘입니다. 여기서 무향 그래프란 방향성이 없는 노드들이 연결되어있는 그래프 자료구조를 뜻합니다. 그래프의 자료구조 형태는 바로 아래 이미지와 같습니다. 즉, 무향 그래프는 두 노드간 방향성이 없고 연결에 대한 가중치만 있는 그래프입니다. 이 무향 그래프에서 모든 노드들을 연결하는데 있어 최소 비용의 합으로 연결되어진 최소 비용 신장 트리를 구하는 알고리즘 중 하나가 프림 알고리즘입니다. 프림 알고리즘.. 2022. 7. 14.
[프로그래머스] 탐욕법(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.
728x90