자료구조&알고리즘/알고리즘

[백준][JS] 1927번 - 최소 힙

문제 유형 - 자료구조 - 우선순위 큐 문제 널리 잘 알려진 자료구조 중 최소 힙이 있다. 1. 최소 힙을 이용하여 다음과 같은 연산을 지원하는 프로그램을 작성하시오. 2. 배열에 자연수 x를 넣는다. 배열에서 가장 작은 값을 출력하고, 그 값을 배열에서 제거한다. 프로그램은 처음에 비어있는 배열에서 시작하게 된다. 출력 입력에서 0이 주어진 횟수만큼 답을 출력한다. 만약 배열이 비어 있는 경우인데 가장 작은 값을 출력하라고 한 경우에는 0을 출력하면 된다. 예제 입력 9 0 12345678 1 2 0 0 0 0 32 예제 출력 0 1 2 12345678 0 풀이 const [N, ...ARR] = require('fs') .readFileSync(process.platform === 'linux' ? ..

자료구조&알고리즘/알고리즘

[백준][node.js] 11053.가장 긴 증가하는 부분 수열

문제 유형 동적 계획법 문제 수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50} 이고, 길이는 4이다. 입력 첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 수열 A를 이루고 있는 Ai가 주어진다. (1 ≤ Ai ≤ 1,000) 출력 첫째 줄에 수열 A의 가장 긴 증가하는 부분 수열의 길이를 출력한다. 예제 입력 1 6 10 20 10 30 20 50 예제 출력 1 4 풀이 기준 인덱스를 설정하고 for문을 도는 방식이다. 기준 인덱스인 i를 두고 기준 인덱스보다 이전 인덱스..

자료구조&알고리즘/알고리즘

[LeetCode][JS] 1번 Two Sum

문제 유형 배열, 해쉬 테이블 문제 Given an array of integers nums and an integer target, return indices of the two numbers such that they add up to target. You may assume that each input would have exactly one solution, and you may not use the same element twice. You can return the answer in any order. 배열의 숫자 값을 2개 더했을 때 target값과 같다면 각 인덱스를 아무 순서에 따라 배열로 반환해라. 반드시 해답은 1개 있으며 배열의 숫자를 반복해서 사용하며 안된다. 예시 Input: n..

자료구조&알고리즘/알고리즘

[LeetCode][JS] 136번 Single Number

문제 유형 배열, 비트 연산 문제 Given a non-empty array of integers nums, every element appears twice except for one. Find that single one. You must implement a solution with a linear runtime complexity and use only constant extra space. 비어있지 않은 숫자를 담은 배열이 주어진다. 배열에서 2번 나타나지않은 요소를 찾아라. 반드시 선형 시간 복잡도로 풀어야 하며 O(N)가 아닌 O(1) 시간으로 풀어라 constant extra space - 사용하는 메모리 영역의 constant 제약이 있음 - 즉, 입력값에 따라 변하는 variable 이..

자료구조&알고리즘/알고리즘

[LeetCode][JS] 49번 Group Anagrams

⚡문제 유형 배열,정렬, 해쉬 테이블, 문자열 📝문제 Given an array of strings strs, group the anagrams together. You can return the answer in any order. An Anagram is a word or phrase formed by rearranging the letters of a different word or phrase, typically using all the original letters exactly once. 그룹 아나그램 배열을 완성해라. 순서는 상관이 없다. 아나그램은 문자로 만들 수 있는 무작위 조합을 말한다. 📘예시 Input: strs = ["eat","tea","tan","ate","nat","bat"]..

자료구조&알고리즘/알고리즘

[LeetCode][JS] 1630번 Arithmetic Subarrays

⚡문제 유형 배열,정렬 📝문제 s[i+1] - s[i] == s[1] - s[0] 처럼 각 배열의 요소를 정렬했을 때 차이는 일정합니다. l과 r이 주어졌을 때 [l[i], r[i]]를 범위로 보고 범위에 해당하는 배열 요소가 차이가 일정한지 여부를 배열로 반환하시오. 📘예시 Input: nums = [4,6,5,9,3,7], l = [0,0,2], r = [2,3,5] Output: [true,false,true] Explanation: In the 0th query, the subarray is [4,6,5]. This can be rearranged as [6,5,4], which is an arithmetic sequence. In the 1st query, the subarray is [4,6,..

자료구조&알고리즘/알고리즘

[LeetCode][JS] 150번 Evaluate Reverse Polish Notation

문제 유형 수학, 배열, 스택 문제 들어오는 배열은 후위표기식 순서이다. (Reverse Polish Notation) . 유효한 연산자는 +, -, *및 /입니다. 각 피연산자는 정수 또는 다른 표현식일 수 있습니다. 두 정수 간의 나누기는 0으로 잘려야 합니다 .후위 표기식을 계산하시오. 예시 Input: tokens = ["2","1","+","3","*"] Output: 9 Explanation: ((2 + 1) * 3) = 9 Input: tokens = ["4","13","5","/","+"] Output: 6 Explanation: (4 + (13 / 5)) = 6 Input: tokens = ["10","6","9","3","+","-11","*","/","*","17","+","5","+..

자료구조&알고리즘/알고리즘

[LeetCode][JS] 66번 Plus One

⚡문제 유형 수학,정렬 📝문제 각 자리의 수를 담은 정수 배열이 들어옵니다. 숫자는 왼쪽에서 오른쪽 순서로 최상위에서 최하위 순으로 정렬됩니다. 숫자에 1을 더한 값을 다시 배열로 반환하시오. 📘예시 Input: digits = [1,2,3] Output: [1,2,4] Explanation: The array represents the integer 123. Incrementing by one gives 123 + 1 = 124. Thus, the result should be [1,2,4]. Input: digits = [4,3,2,1] Output: [4,3,2,2] Explanation: The array represents the integer 4321. Incrementing by one gi..

자료구조&알고리즘/알고리즘

[LeetCode][JS] 1678번 Goal Parser Interpretation

⚡문제 유형 문자열 📝문제 "G", "()" ,"(al)" 가 혼합해 입력값으로 들어온다. 이 때 "()"은 o로 변경하고 괄호를 전부 뺀 문자열로 반환해라. 📘예시 Input: command = "G()(al)" Output: "Goal" Explanation: The Goal Parser interprets the command as follows: G -> G () -> o (al) -> al The final concatenated result is "Goal". Input: command = "G()()()()(al)" Output: "Gooooal" Input: command = "(al)G(al)()()G" Output: "alGalooG 📗풀이 1. split split("()")을 사용해..

자료구조&알고리즘/알고리즘

[LeetCode][JS] 976번 Largest Perimeter Triangle

⚡문제 유형 배열, 수학, 그리디, 정렬 📝문제 정수 배열이 주어지면 0이 아닌 면적을 가진 삼각형의 가장 큰 둘레를 nums 반환해라. 만들어지지 않으면 0을 반환. 📘예시 Input: nums = [2,1,2] Output: 5 Input: nums = [1,2,1] Output: 0 📗풀이 "삼각형의 가장 긴 변의 길이는 나머지 두 변의 길이의 합보다 항상 작다" 라는 삼각형의 성질을 이용해 풀면 된다. 1. 내림차순 정렬을 한다. 2. 가장 긴 변 b -a); for(let i = 0; i < nums.length - 2; i++){ i..

놀이터주인장
'자료구조&알고리즘/알고리즘' 카테고리의 글 목록