문제 설명
두 정수 left
와 right
가 매개변수로 주어집니다. left
부터 right
까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주세요.
제한사항
1 ≤ left
≤ right
≤ 1,000
입출력 예
left | right |
---|---|
13 | 17 |
24 | 27 |
입출력 예 설명
입출력 예 #1
다음 표는 13부터 17까지의 수들의 약수를 모두 나타낸 것입니다.
수 | 약수 | 약수의 개수 |
---|---|---|
13 | 1, 13 | 2 |
14 | 1, 2, 7, 14 | 4 |
15 | 1, 3, 5, 15 | 4 |
16 | 1, 2, 4, 8, 16 | 5 |
17 | 1, 17 | 2 |
따라서, 13 + 14 + 15 - 16 + 17 = 43을 return 해야 합니다.
입출력 예 #2
다음 표는 24부터 27까지의 수들의 약수를 모두 나타낸 것입니다.
수 | 약수 | 약수의 개수 |
---|---|---|
24 | 1, 2, 3, 4, 6, 8, 12, 24 | 8 |
25 | 1, 5, 25 | 3 |
26 | 1, 2, 13, 26 | 4 |
27 | 1, 3, 9, 27 | 4 |
따라서, 24 - 25 + 26 + 27 = 52를 return 해야 합니다.
function solution(left, right) {
let answer = 0;
for (let i = left; i <= right; i++) {
let count = 0;
for (let j = 0; j <= i; j++) {
if (i % j === 0) {
count += 1;
}
} count % 2 === 0 ? answer += i : answer -= i;
} return answer;
}
function solution(left, right) {
var answer = 0;
for (let i = left; i <= right; i++) {
if (Number.isInteger(Math.sqrt(i))) {
answer -= i;
} else {
answer += i;
}
}
return answer;
}
Number.isInteger()
메서드는 값이 Number 타입의 정수라면 true
를 반환하고 반대라면 false
를 반환합니다.문법
Number.isInteger(value)
새로운 매서드에 대해 배웠고 for문을 두 번 사용하는 것을 지양하고 싶은데 for문부터 생각나게 된다.
문제 설명
행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환하는 함수, solution을 완성해주세요.
제한 조건
행렬 arr1, arr2의 행과 열의 길이는 500을 넘지 않습니다.
입출력 예
arr1 | arr2 | return |
---|---|---|
[[1,2],[2,3]] | [[3,4],[5,6]] | [[4,6],[7,9]] |
[[1],[2]] | [[3],[4]] | [[4],[6]] |
function solution(arr1, arr2) {
let result = [];
for (let i = 0; i < arr1.length; i++) {
let result2 = [];
for (let j = 0; j < arr1[0].length; j++) {
result2.push(arr1[i][j]+arr2[i][j]);
} result.push(result2);
}
return result;
}
function solution(arr1, arr2) {
return arr1.map((a, i) => a.map((b, j) => b + arr2[i][j]));
}
문법
array.map(function(currentValue, index, arr), thisValue)
Parameter | Description |
---|---|
function() | 필수. 각각 배열의 요소에 대해 실행 될 함수. |
currentValue | 필수. 현재 요소에 대한 값. |
index | 옵션. 현재 요소의 인덱스. |
arr | 옵션. 현재 요소의 배열. |
thisValue | 옵션. Default value undefined . this 값으로 사용할 함수에 전달된 값. |
map을 자주 사용했으나 코테에서 간단하게 사용하는 방법 말고 map을 두 번 사용할 수 있구나라고 알게 되었다. index를 사용하면 for문을 2번 사용하는 것 처럼 할 수 있지만 짧게 코드를 간결하게 사용할 수 있다라는 것을 느꼈다.
reference
https://school.programmers.co.kr/
https://www.w3schools.com/jsref/jsref_isinteger.asp
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/map
https://www.w3schools.com/jsref/jsref_map.asp