프론트 개발자를 위한 여정

모든 영역을 안내하는 개발자

Algorithm

알고리즘 문제에서 자주 쓰이는 Math 함수 완벽 정리

ji-frontdev 2024. 11. 27. 14:59
반응형

🎯 1. 자주 사용되는 Math 함수와 그 이유

다음은 알고리즘 문제에서 자주 등장하는 Math 함수와 많이 사용되는 이유입니다:

함수 사용 빈도 주요 활용 이유
Math.abs() ★★★★★ 절댓값 계산: 두 값의 차이 계산, 거리 계산 문제에서 필수적으로 사용됩니다.
Math.max() ★★★★★ 최댓값 구하기: 배열 내 최대값 계산이나 여러 값 중 가장 큰 값 찾기에 사용됩니다.
Math.min() ★★★★★ 최솟값 구하기: 배열 내 최소값 계산이나 여러 값 중 가장 작은 값 찾기에 사용됩니다.
Math.floor() ★★★★☆ 내림값 계산: 정수 연산, 몫 계산, 배수 관련 문제에서 사용됩니다.
Math.ceil() ★★★★☆ 올림값 계산: 나누기 연산 후 올림값을 구하거나 필요한 최소값을 계산하는 문제에서 사용됩니다.
Math.round() ★★★☆☆ 반올림 계산: 평균 구하기, 소수점 정리 문제에서 사용됩니다.
Math.sqrt() ★★★☆☆ 제곱근 계산: 피타고라스 정리, 거리 계산, 원의 반지름 등 기하학 문제에서 자주 사용됩니다.
Math.random() ★★★☆☆ 난수 생성: 무작위 선택 문제, 샘플링 또는 시뮬레이션 문제에서 활용됩니다.
Math.pow() ★★☆☆☆ 거듭제곱 계산: 기하학적 연산, 지수 계산 문제에서 사용됩니다.
Math.log() ★☆☆☆☆ 로그 계산: 지수 함수나 복잡한 수학 문제에서 가끔 사용됩니다.

🧩 2. 어떤 유형의 문제에서 많이 사용될까?

각 Math 함수는 문제 유형에 따라 자주 사용됩니다. 아래는 대표적인 문제 유형과 주요 함수들입니다:

1️⃣ 거리 계산 문제

  • 예시: 두 점 사이의 거리 구하기
  • 사용 함수: Math.sqrt(), Math.abs()
// 두 점 (x1, y1), (x2, y2) 사이 거리 계산
const distance = Math.sqrt(Math.pow(x2 - x1, 2) + Math.pow(y2 - y1, 2));
 

2️⃣ 최대/최소 값 문제

  • 예시: 배열의 최댓값과 최솟값 구하기
  • 사용 함수: Math.max(), Math.min()
const arr = [3, 5, 1, 8, 2];
const maxVal = Math.max(...arr); // 8
const minVal = Math.min(...arr); // 1​
 
 

3️⃣ 정수 연산 문제

  • 예시: 필요한 최소 횟수 계산
  • 사용 함수: Math.floor(), Math.ceil()
// 한 번에 K개를 처리할 때 필요한 최소 횟수
const total = 17;
const batchSize = 5;
const minBatches = Math.ceil(total / batchSize); // 4​

4️⃣ 난수 생성 문제

  • 예시: 무작위로 값 선택하기
  • 사용 함수: Math.random()
// 1부터 100 사이의 난수 생성
const randomNum = Math.floor(Math.random() * 100) + 1;​

5️⃣ 기하학 문제

  • 예시: 삼각형의 면적 계산
  • 사용 함수: Math.sqrt(), Math.pow(), Math.PI
// 반지름 r인 원의 넓이
const r = 5;
const area = Math.PI * Math.pow(r, 2); // 78.54​

📊 3. 예상 사용 순위

알고리즘 문제에서의 Math 함수 사용 빈도를 추정한 순위는 다음과 같습니다:

  1. Math.abs()
  2. Math.max() / Math.min()
  3. Math.floor() / Math.ceil()
  4. Math.sqrt()
  5. Math.random()
  6. Math.pow()
반응형