문제 유형 - 자료구조 - 우선순위 큐 문제 널리 잘 알려진 자료구조 중 최소 힙이 있다. 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' ? ..
문제 유형 동적 계획법 문제 수열 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를 두고 기준 인덱스보다 이전 인덱스..
문제 유형 배열, 해쉬 테이블 문제 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..
문제 유형 배열, 비트 연산 문제 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 이..
⚡문제 유형 배열,정렬, 해쉬 테이블, 문자열 📝문제 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"]..
⚡문제 유형 배열,정렬 📝문제 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,..
⚡문제 유형 수학,정렬 📝문제 각 자리의 수를 담은 정수 배열이 들어옵니다. 숫자는 왼쪽에서 오른쪽 순서로 최상위에서 최하위 순으로 정렬됩니다. 숫자에 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..
⚡문제 유형 문자열 📝문제 "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("()")을 사용해..
⚡문제 유형 배열, 수학, 그리디, 정렬 📝문제 정수 배열이 주어지면 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..