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

[LeetCode][JS] 1502번 Can Make Arithmetic Progression From Sequence

⚡문제 유형 배열, 정렬 📝문제 연속된 두 요소의 차이가 동일한 경우 일련의 숫자를 산술 진행 이라고 합니다. 숫자 배열이 주어지면 배열이 산술 진행 을 형성하도록 재배열될 수 있으면 true 를 반환 하고 그렇지 않으면 false를 반환 합니다. 📘예시 Input: arr = [3,5,1] Output: true Explanation: We can reorder the elements as [1,3,5] or [5,3,1] with differences 2 and -2 respectively, between each consecutive elements. Input: arr = [1,2,4] Output: false Explanation: There is no way to reorder the elem..

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

[leetCode][JS] 1822번 Sign of the Product of an Array

⚡문제 유형 배열, 수학 📝문제 입력값인 배열의 요소를 다 곱했을 때 음수면 -1, 0이면 0, 양수면 1을 반환해라 📘예시 Input: nums = [-1,-2,-3,-4,3,2,1] Output: 1 Explanation: The product of all values in the array is 144, and signFunc(144) = 1 Input: nums = [1,5,0,2,-3] Output: 0 Explanation: The product of all values in the array is 0, and signFunc(0) = 0 Input: nums = [-1,1,-1,1,-1] Output: -1 Explanation: The product of all values in the a..

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

[LeetCode][JS] 1779번 Find Nearest Point That Has the Same X or Y Coordinate

⚡문제 유형 배열 📝문제 입력값으로 현재 좌표 위치인 X, Y와 좌표에 찍힌 점의 정보인 points가 온다. 사용자 위치와 동일한 x 좌표 또는 동일한 y 좌표를 공유하는 경우 유효한 point이다. 현재 위치에서 맨해튼 거리 가 가장 작은 유효한 지점 의 points를 반환하는 문제이다. 정답이 여러개면 인덱스 번호가 가장 작은 것을 반환하고 유효한 포인트가 없으면 -1를 반환한다. 두 점 사이의 맨해튼 거리는 (x1, y1)(x2, y2)abs(x1 - x2) + abs(y1 - y2)이다. 📘예시 Input: x = 3, y = 4, points = [[1,2],[3,1],[2,4],[2,3],[4,4]] Output: 2 Explanation: Of all the points, only [3,1..

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

[LeetCode][JS] 1281번 Subtract the Product and Sum of Digits of an Integer

⚡문제 유형 단순구현(수학) 📝문제 입력값의 각 자리 곱과 합을 구해라 📘예시 Input: n = 234 Output: 15 Explanation: Product of digits = 2 * 3 * 4 = 24 Sum of digits = 2 + 3 + 4 = 9 Result = 24 - 9 = 15 Input: n = 4421 Output: 21 Explanation: Product of digits = 4 * 4 * 2 * 1 = 32 Sum of digits = 4 + 4 + 2 + 1 = 11 Result = 32 - 11 = 21 📗풀이 1. 문자열로 바꾸기(toString) 2. 각 자리 쪼개기(split) 3. 숫자로 바꿔주기(map) 4. 합과 곱 구해주기 (reduce) 📕코드 var s..

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

[LeetCode][JS] 191번 Number of 1 Bits

⚡문제 유형 비트 📝문제 입력값에서 1의 개수를 구해라 📘예시 Input: n = 00000000000000000000000000001011 Output: 3 Explanation: The input binary string 00000000000000000000000000001011 has a total of three '1' bits. Input: n = 00000000000000000000000010000000 Output: 1 Explanation: The input binary string 00000000000000000000000010000000 has a total of one '1' bit. Input: n = 11111111111111111111111111111101 Output: 31 E..

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

[LeetCode][JS] 231번 Power of Two

⚡문제 유형 비트 📝문제 n이 2의 거듭제곱 수이면 true, 아니면 false 📘예시 Input: n = 1 Output: true Explanation: 20 = 1 Input: n = 16 Output: true Explanation: 24 = 16 Input: n = 3 //3은 2의 제곱수가 아님 Output: false 📗풀이 & 연산자를 사용합니다. & 연산자는 AND 비트 연산자로 두 개의 피연산자의 각 자리마다 대응하는 비트가 모두 1일 경우 1을 반환합니다. 예시로 8이 2의 거듭제곱인지 확인 해보겠습니다. 먼저 8과 7을 2진수로 변환합니다. 8과 7을 & 연산자로 계산하면 0000이 나오게 됩니다. 이때 모두 0 이나오면 2의 거듭제곱이고 0이 아닌 수가 나오게 되면 2의 거듭제곱 ..

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

[LeetCode][JS] 120번 Triangle

⚡문제 유형 DP 📝문제 주어진 triangle을 위에서 아래로의 최소 경로 합계를 반환합니다 . 각 단계에 대해 아래 행의 인접한 번호로 이동할 수 있습니다. 즉, 현재 행의 인덱스 i에 있는 경우 다음 행의 인덱스 i 또는 인덱스 i + 1로 이동할 수 있습니다. -> 피라미드 구조로 내려오면서 i 또는 i+1로 이동해서 최솟값 구하는 문제 📘예시 Input: triangle = [[2],[3,4],[6,5,7],[4,1,8,3]] Output: 11 Explanation: The triangle looks like: 2// 2 3 4// 최솟값을 만들기 위해 2에서 갈 수 있는 다음 행 (3,4) -> 3 6 5 7// 최솟값을 만들기 위해 3에서 갈 수 있는 다음 행 (6,5) -> 5 4 1 8..

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

[JS][알고리즘] 이진 탐색(Binary Search Algorithm)

개념 이미 정렬된 배열에서 탐색 범위를 두 부분 리스트로 나눠 절반씩 좁혀서 가며 필요한 부분에서만 탐색하도록 제한하여 원하는 값을 찾는 알고리즘 특징 및 설명 오름차순으로 정렬된 배열이 필요하고 왼쪽의 끝 인덱스(left), 오른쪽 끝 인덱스(right), 중간 값(mid)이 필요함 -> 보통(start, end 사용) target 값과 중간값 비교 1. target 값 == 중간 값이랑 같다 -> 끝! 2. target 값 left = mid + 1 3. target 값 > 중간 값 -> right= mid - 1 복잡도 O(log(N)) 매번 절반의 탐색할 데이터를 제외시킨다 라고 간단하게 생각하면 된다. 예시 배열 nums의 target 값은 9이고 배열의 중간 값(pivot)은..

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