2025/01/11 3

[Javascript] 더 맵게

목차1. 문제 설명2. 문제 풀이3. 전체 코드1. 문제 설명모든 음식의 스코빌 지수를 K 이상으로 만드는 데 걸리는 횟수를 구하는 문제이다.K 이상으로 만들기 위해서, 연산을 해야하는데 그 연산은 다음과 같다.섞은 음식의 스코빌 지수 = 가장 맵지 않은 음식의 스코빌 지수 + (두 번째로 맵지 않은 음식의 스코빌 지수 * 2) Key point제한 조건 : 2 가장 적은 두 개의 값을 계속 구해야하는데, 그때그때마다 새로운 적은 값을 구하기 위해서는 시간초과가 발생한다.👉 힙 알고리즘을 구현해내야한다. 2. 문제 풀이1) 기본 코드힙을 구현하기 위한 기본 구조는 다음과 같다.class MinHeap { constructor() { this.heap = []; // 힙 배열 } ..

Algorithm 2025.01.11

[Javascript] 가장 큰 수

목차1. 문제 설명2. 문제 풀이3. 정답 코드 1. 문제 설명0 또는 양의 정수들을 집합이 주어졌을 때 그 수들을 붙여서 만들수 있는 가장 큰 수를 구하는 문제이다.입출력 예는 다음과 같다. 주의할 점numbers를 내림차순하여 이어붙인 것이 반드시 가장 큰 수는 아니다.만약, 2번째 예시를 내림차순 방식으로 답을 구한다면 → "9534303" 이다.하지만 가장 큰 수는 "9534330" 이므로, 다른 방식을 찾아야했다! 2. 문제 풀이만약 [3, 30] 이 주어진다면, 가장 큰 수는 "330" 이다.내림차순을 결정하는 수는 2개의 수를 더한 수이다. ( ≠ 각 수를 내림차순) (참고) 기본 sort 함수 사용법[1,2,3,4].sort((a, b)=> b - a); a는 뒷번호, b는 앞번호이다. b..

Algorithm 2025.01.11

[Javascript] 롤케이크 자르기

목차1. 문제 설명2. 문제 풀이3. 정답 코드 1. 문제 설명다음 문제는 롤케이크를 자르는 문제이다.롤케이크에는 토핑이 올라가 있으며, 토핑의 종류는 숫자로 표시된다. (ex. 1, 2, 3...)철수는 롤케이크를 2조각으로 나눠 동생과 나눠가져야하는데,공평하게 나누기 위하여 다음 조건을 만족해야한다.=> 토핑의 가지수가 동일해야 함 이 때, topping의 개수가 1,000,000로 매우 큰 숫자임을 주의해야한다.  2. 문제 풀이topping의 개수가 1,000,000로 매우 큰 숫자이므로, 롤케이크를 자르는 행위는 선형 탐색으로 해결해야한다는 것을 알았다. 변수각 조각이 가진 토핑들을 저장할 객체와 가짓 수를 카운트할 변수를 선언해야한다. 로직1. 초기 상태 : 모든 토핑을 오른쪽 조각에 우선 배..

Algorithm 2025.01.11
728x90