AI Store에서 AI코딩으로 만들어진 앱을 만나보세요!
지금 바로 방문하기

JavaScript 배열 요소 빈도 기반 그룹화

카테고리

프로그래밍/소프트웨어 개발

서브카테고리

웹 개발

대상자

  • JavaScript 초보자~중급 개발자
  • 배열 조작 및 데이터 처리 기술 향상 필요
  • 중간 난이도의 알고리즘 문제 해결 연습

핵심 요약

  • 빈도 기반 그룹화: Map 또는 Object를 사용해 요소의 빈도를 계산
  • 결과 정렬: 빈도 기준으로 오름차순/내림차순 정렬 가능
  • 핵심 코드: Array.prototype.reduce()Object.entries() 활용

섹션별 세부 요약

1. 문제 정의

  • 배열 내 요소의 출현 빈도를 기준으로 그룹화
  • 예: [1,2,2,3,3,3]{1:1, 2:2, 3:3}

2. 빈도 계산

  • Map 사용 예시:

```javascript

const freqMap = arr.reduce((acc, val) => {

acc.set(val, (acc.get(val) || 0) + 1);

return acc;

}, new Map());

```

  • Object 사용 예시:

```javascript

const freqObj = arr.reduce((acc, val) => {

acc[val] = (acc[val] || 0) + 1;

return acc;

}, {});

```

3. 결과 정렬

  • 빈도 기준 정렬:

```javascript

const sorted = Object.entries(freqObj)

.sort((a, b) => a[1] - b[1]); // 오름차순

```

  • 결과 구조: [[값, 빈도], [값, 빈도], ...] 형식

결론

  • 실무 팁: Map은 중복 키 처리에 효율적, Object는 간단한 빈도 계산에 적합
  • 추천: Array.prototype.reduce()Object.entries() 조합 사용
  • 참고: 이 문제는 DEV Community의 #JavaScript 챌린지 시리즈의 일부로, 알고리즘 연습에 유용