-
[알고리즘/자바스크립트] 합해서 나눠떨어지는 쌍 찾기 (Divisible Sum Pairs)Algorithm 2019. 5. 1. 14:23
[문제] 정수로 이루어진 배열 ar과 양의 정수 k가 있습니다.
다음과 같은 조건을 만족하는 배열 원소들의 쌍의 개수를 반환하는 함수를 작성해주세요.
- i < j 이다.
- ar[i] + ar[j] 는 k의 배수이다.
예를들어,
ar = [1, 2, 3, 4, 5, 6] 이고 k = 5 일때, 조건을 만족하는 쌍은 [1, 4], [2, 3], [4, 6] 세 쌍입니다.
그러므로 결과값은 3이 나와야 합니다.
ar = [1, 2, 3, 4, 5, 6] 이고 k = 5 일때 배열을 1부터 6까지 차례로 돌리는데,
1의 순서가 왔을 때, 1에다가 2, 3, 4, 5, 6을 각각 더해서 5의 배수인지 판별하고
2의 순서가 왔을 떄는 3, 4, 5, 6을 각각 더해서 5의 배수인지 판별,
3의 순서가 왔을 때는 4, 5, 6을 각각 더해서 판별...
이런 식으로 해주면 된다.
function divisibleSumPairs(k, ar) { // Complete the divisibleSumPairs function. var count = 0; ar.forEach(function(num, i) { for(var j=i+1; j<ar.length; j++) { if((num + ar[j]) % k === 0) { count++; } } }); return count; }
5의 배수를 만족하는 짝을 찾으면 숫자를 세어야하므로 count변수를 만들어준다.
ar배열을 forEach문으로 돌리고 각각의 숫자마다 index값을 변수 i로 가져온다.
각 숫자의 순번에 i+1부터 끝까지 반복을 다시 돌려서
차례로 더한 후 k의 배수라면 count변수를 1 증가시켜 준다.
반복을 마치고 나면 count값을 return한다.
반응형'Algorithm' 카테고리의 다른 글
[알고리즘/자바스크립트] 페이지 카운트 (Page Count) (2) 2019.05.01 [알고리즘/자바스크립트] 영역 안에 떨어진 사과와 오렌지 개수 구하기 (Count Apples and Oranges) (0) 2019.05.01 [알고리즘/자바스크립트] 컵 돌리기 게임 (Find Key) (0) 2019.05.01 [알고리즘/자바스크립트] 함수로 계산하기 (Calculating with Functions) (0) 2019.04.29 [알고리즘/자바스크립트] 연속하는 숫자의 합 중 가장 큰 값 구하기 (Maximum subarray sum) (0) 2019.04.28 COMMENT