알고리즘
-
JavaScript:: 그래프의 최대 넓이 값 구하기알고리즘 2020. 7. 17. 13:18
[JavaScript] 그래프의 최대 넓이 값 구하기 문제 '인자'인 height는 숫자로 이루어진 배열입니다. 그래프로 생각한다면 y축의 값이고, 높이 값을 갖고 있습니다. 아래의 그래프라면 height 배열은 [1, 8, 6, 2, 5, 4, 8, 3, 7] 입니다. 저 그래프에 물을 담는다고 생각하고, 물을 담을 수 있는 가장 넓은 면적의 값을 반환해주세요. 가정 : 배열의 길이는 2이상입니다. 해결 과정 우리가 해결해야 할 문제는 아래와 같다. 각 배열의 요소를 돌아가며 다른 배열의 요소의 값과 함께 넓이를 구한다. 넓이를 구할 때 두 수를 비교하는데, 최소값을 통해 높이 값을 구한다. 두 요소의 인덱스 값을 비교해 가로값을 구한다. 모든 경우의 수로 담긴 넓이의 값을 비교하여 큰 ..
-
Javascript:: 가장 자주 등장한 숫자를 k개수만큼 return알고리즘 2020. 7. 16. 12:01
nums는 숫자로 이루어진 배열입니다. 가장 자주 등장한 숫자를 k 개수만큼 return 해주세요. nums = [1, 1, 1, 2, 2, 3] k = 2 return [1, 2] nums = [1] k = 1 return [1] 배열에서 같은 숫자, 글자 등 같은 값의 갯수를 서로 비교하고 싶다면 우리는 '객체'를 이용하면된다. 고로 for문을 돌려서 요소 하나하나를 객체의 key값과 비교하고, key값에 있다면 count 를 늘려주고, 없다면 객체 key에 넣어준다. 아래와 같이 코드를 작성한다. function topK(nums, k) { let obj = {}; for (let i=0; i < nums.length; i++) { (nums[i] in obj) ? obj[nums[i]] += 1 ..
-
JavaScript:: 정수 뒤집어 return 하기알고리즘 2020. 7. 7. 13:50
reverse 함수에 정수인 숫자를 인자로 받습니다. 그 숫자를 뒤집에서 return 해주세요. x : 숫자 return : 뒤집어진 숫자를 반환! 예를들어, x : 1234 return : 4321 x : -1234 return : -4321 x : 1230 return : 321 우리가 함수를 통해 구현해야 할 것은 아래와 같다. 1. x가 숫자인 상태에서 수를 뒤집을 수 없으니 x를 문자열로 바꾸어 주어야 한다. 2. x 문자열의 각 요소를 분리하여 하나의 배열로 만든다. 3. 배열의 자리를 뒤집는다. 4. 만약 배열에 '-' 가 들어갈 경우, 배열을 뒤집었을 때 - 가 맨 뒤로 가기에 뒤에 있는 -를 빼주고 배열의 맨 앞에 -를 넣어준다. 5. 만약 배열 index 0번째 자리에 0이..
-
JavaScript :: twoSum 함수알고리즘 2020. 7. 6. 11:40
twoSum 함수에 숫자 배열과 '특정 수'를 일자로 넘기면, 더해서 '특정 수'가 나오는 index를 배여렝 담아 return 해주세요. num: 숫자 배열 target: 두 수를 더해서 나올 수 있는 합계 return: 두 수의 index를 가진 숫자 배열 예를들어, nums는 [4, 9, 11, 14] target은 13 nums[0] + num[1] = 4 + 9 = 13 이다. 그러면 [ 0, 1 ]이 return 되어야 한다. *가정 target으로 보내는 합계의 조합은 배열 전체 중에 2개 밖에 없다고 가정하자. 먼저, target의 숫자와 nums 배열 중 두 숫자의 합을 비교해야 하기 때문에 우리는 nums의 배열 중 두 숫자의 합이 될 수 있는 경우의 수를 비교하기 위해 f..