본문 바로가기

IT/Algorithm(알고리즘)

Multiple Pointers(여러개 포인터) - averagePair

예제]  averagePair라는 함수를 만드십시오. 정수가 들어간 배열과 옆에 맞출 숫자를 넣고, 배열에 있는 두 숫자의 합의 평균이 맞출 숫자랑 값이 같는 경우 True로 반환하고 아니면 False로 반환하시오. (맞출숫자가 배열에 2개 이상이어도 됩니다.)

시간복잡도: O(N)

공간복잡도: O(1)

 

해답

function averagePair(arr, num){

  if(arr.length === 0){

    return false

  }

  arr.sort()

  let start = 0;

  let end = arr.length - 1;

  

  while(start < end) {

    let avg = ((arr[start] + arr[end]) / 2)    

    if(avg === num){

      return true;

    } else if(avg < num){

      start++;

    } else {

      end--;

    }

  } // While문 끝

 

  return false;

}