코딩테스트 31일차
없는 숫자 더하기
0부터 9까지의 숫자 중 일부가 들어있는 정수 배열 numbers가 매개변수로 주어집니다. numbers에서 찾을 수 없는 0부터 9까지의 숫자를 모두 찾아 더한 수를 return 하도록 solution 함수를 완성해주세요.
function solution(numbers) {
const check = new Array(10).fill(0);
for (let i = 0; i < numbers.length; i++) {
const num = numbers[i];
check[num] = 1;
}
let answer = 0;
for (let i = 0; i < check.length; i++) {
if (check[i] === 0) {
answer += i;
}
}
return answer;
}
✏️풀이
check라는 배열을 생성하고 길이가 10이고 모든 요소를 0으로 초기화합니다. 이 배열은 0부터 9까지의 숫자를 체크하는 데 사용됩니다.
numbers 배열을 순회하면서 각 숫자를 check 배열에서 체크합니다. numbers 배열의 각 요소를 순회하면서 해당 숫자를 check 배열의 인덱스로 사용하여 해당 인덱스를 1로 설정합니다. 이를 통해 check 배열에서 해당 숫자를 체크한 것을 표시합니다.
check 배열을 순회하면서 값이 0인 인덱스를 찾아 더합니다. 0부터 9까지의 숫자 중에서 check 배열에서 값이 0인 인덱스는 numbers 배열에서 나타나지 않은 숫자를 의미합니다. 따라서 해당 숫자를 answer 변수에 더해줍니다.
더한 결과를 answer 변수에 저장합니다.
answer 변수를 반환하여 결과를 출력합니다.
음양 더하기
어떤 정수들이 있습니다. 이 정수들의 절댓값을 차례대로 담은 정수 배열 absolutes와 이 정수들의 부호를 차례대로 담은 불리언 배열 signs가 매개변수로 주어집니다. 실제 정수들의 합을 구하여 return 하도록 solution 함수를 완성해주세요.
function solution(absolutes, signs) {
let answer = 0;
for (let i = 0; i < absolutes.length; i++) {
if (signs[i]) {
answer += absolutes[i];
} else {
answer -= absolutes[i];
}
}
return answer;
}
✏️풀이
초기 변수 answer를 0으로 설정합니다. 이 변수는 최종적으로 계산된 정수들의 합을 저장할 것입니다.
absolutes 배열과 signs 배열을 동시에 순회합니다. 순회를 위한 인덱스 변수 i를 0부터 absolutes 배열의 길이까지 증가시키며 반복합니다.
각 순회에서 현재 인덱스의 absolutes 값과 signs 값을 확인합니다.
만약 signs[i]가 true인 경우, 해당 인덱스의 absolutes[i] 값을 그대로 answer에 더합니다. 이는 해당 인덱스의 정수 값이 양수임을 의미합니다. 따라서 절댓값을 그대로 더합니다.
만약 signs[i]가 false인 경우, 해당 인덱스의 absolutes[i] 값을 음수로 처리하여 answer에 더합니다. 이는 해당 인덱스의 정수 값이 음수임을 의미합니다. 따라서 절댓값을 음수로 변경하여 더합니다.
모든 순회가 끝나면 answer를 반환합니다.