배열 요소의 최댓값 제거하기

문제 설명

주어진 배열에서 최댓값을 찾아서 제거하는 함수를 작성해야 합니다.

해결 방법

  1. 우선 주어진 배열에서 최댓값을 찾습니다. 이를 위해 반복문을 사용하여 배열의 모든 요소를 순회하면서 현재까지 확인한 요소들 중 가장 큰 값을 저장합니다.
  2. 최댓값을 찾은 후, 배열을 순회하면서 최댓값과 일치하는 요소들을 모두 제거합니다. 이를 위해 새로운 배열을 만들거나, 기존 배열을 수정하는 방법 중 하나를 선택할 수 있습니다.
function removeMax(arr) {
    // 최댓값 초기화
    let max = arr[0];

    // 최댓값 찾기
    for (let i = 1; i < arr.length; i++) {
        if (arr[i] > max) {
            max = arr[i];
        }
    }

    // 최댓값 제거
    for (let i = 0; i < arr.length; i++) {
        if (arr[i] === max) {
            arr.splice(i, 1);
            i--; // 요소를 제거하면 배열의 길이가 줄어들기 때문에 인덱스를 하나 감소시켜야 함
        }
    }

    return arr;
}

사용 예시

const numbers = [1, 3, 2, 6, 4, 9, 5];
const result = removeMax(numbers);
console.log(result); // [1, 3, 2, 4, 5]

해당 예시에서는 배열 [1, 3, 2, 6, 4, 9, 5]에서 최댓값 9를 제거한 후, [1, 3, 2, 4, 5]가 반환됩니다.

마무리

이와 같이 최댓값을 찾아 배열에서 제거하는 방법을 간단하게 알아보았습니다. 이 방법을 응용하여 다양한 배열 조작을 할 수 있으며, 이러한 유형의 문제를 풀 때 유용하게 사용될 수 있습니다.

(#)programming (#)javascript