“ 지연되는 프로젝트에 인력을 더 투입하면 오히려 더 늦어진다. ”
최빈값 구하기
function solution(array) {
// array의 최댓값만큼의 길이를 가진 새로운 배열 생성
let newArray = new Array(Math.max(...array)+1).fill(0);
// array 반복문을 통해, 해당 값에 해당하는 index의 값 += 1
for (let i = 0; i < array.length; i++) {
newArray[array[i]] += 1
}
// newArray의 최댓값에 해당 하는 index 출력
// 만약 indexOf와 lastIndexOf가 지칭하는 값이 같으면, -1 출력 (중복인 경우 확인)
if (newArray.indexOf(Math.max(...newArray)) !== newArray.lastIndexOf(Math.max(...newArray))) {
return -1
} else {
return newArray.indexOf(Math.max(...newArray));
};
}
array에서 최댓값을 찾아서 그 값에 1을 더한 길이를 가진 새로운 배열 newArray를 생성합니다. (Math.max(...array)는 배열에서 최댓값을 찾습니다.)
newArray를 0으로 초기화합니다. 이 배열은 array의 값과 인덱스를 매핑하여 해당 값이 등장한 횟수를 저장하기 위한 용도로 사용됩니다.
반복문을 사용하여 array를 순회하면서, 각 원소의 값에 해당하는 인덱스의 값을 1씩 증가시킵니다. 이렇게 함으로써 각 값이 등장한 횟수를 newArray에 저장합니다.
newArray에서 최댓값을 찾고, 해당 값의 인덱스를 반환합니다. (Math.max(...newArray)는 newArray에서 최댓값을 찾습니다. newArray.indexOf(Math.max(...newArray))는 최댓값의 첫 번째 등장 위치의 인덱스를 반환합니다.)
만약 newArray에서 최댓값이 중복되는 경우, 즉, 최댓값을 가진 값이 여러 개인 경우 -1을 반환합니다. 이는 중복된 값이 존재하여 가장 많이 등장하는 숫자를 결정할 수 없다는 의미입니다. (newArray.indexOf(Math.max(...newArray))와 newArray.lastIndexOf(Math.max(...newArray))를 비교하여 중복 여부를 확인합니다.)
짝수는 싫어요
function solution(n) {
let answer = [];
for (let i = 1; i <= n; i++) {
if (i % 2 !== 0) answer.push(i);
}
return answer;
}
빈 배열 answer를 초기화합니다. 이 배열은 홀수를 저장하기 위한 용도로 사용됩니다.
반복문을 사용하여 1부터 n까지의 모든 수에 대해 순회합니다. (i 변수가 1부터 n까지 증가합니다.)
각 수 i가 홀수인지 확인합니다. (i % 2 !== 0 조건을 사용하여 홀수인지 판별합니다.)
i가 홀수인 경우, answer 배열에 i를 추가합니다. (answer.push(i)를 사용하여 i를 배열에 추가합니다.)
반복문이 종료되면, 배열 answer에 저장된 홀수들이 담긴 배열을 반환합니다.