무지개 곰
무지개곰의 성장이야기
무지개 곰
250x250
  • 분류 전체보기
    • 블록체인 공부
      • BlockChain
      • Ethereum
    • IT공부
      • Java
      • JavaScript
      • HTML + CSS
      • React
      • 프로그래머스 (TypeScript)
    • 독서
    • 영어 공부
      • 1일 1 작문
      • 영어 짧은 글
    • 홍보
hELLO · Designed By 정상우.
무지개 곰

무지개곰의 성장이야기

[프로그래머스] 최빈값 구하기 (TypeScript로 풀기)
IT공부/프로그래머스 (TypeScript)

[프로그래머스] 최빈값 구하기 (TypeScript로 풀기)

2023. 2. 1. 12:00
728x90

문제 설명

최빈값은 주어진 값 중에서 가장 자주 나오는 값을 의미합니다. 정수 배열 array가 매개변수로 주어질 때, 최빈값을 return 하도록 solution 함수를 완성해 보세요. 최빈값이 여러 개면 -1을 return 합니다.


제한사항

  • 0 < array의 길이 < 100
  • 0 ≤ array의 원소 < 1000

입출력 예

array result
[1, 2, 3, 3, 3, 4] 3
[1, 1, 2, 2] -1
[1] 1

문제풀이

0 레벨이라기에 어렵게 느껴졌습니다.

반복되는 값이 있기 때문에 정렬을 이용하여 비교하기로 생각하였습니다. 하나하나 값을 확인하기 위하여 for문도 사용하였습니다. 확인을 시작하면서 반복된 횟수를 length로 기록하기 위하여 length를 증가시킵니다. 증가시킨 후 현재의 값과 다음 값이 다르다면 같은 값이 더 이상 나오지 못하므로 length를 저장하고 answer에 지금의 값을 저장할 것입니다. 하지만 length가 최대로 많이 나온 빈도가 같다면 문제의 조건에 의하여 -1이 반환되어야 하므로 answer을 -1로 저장하도록 하였습니다. 위와는 다르게 length가 maxLength보다 크다면 maxLength를 현재의 length로 저장하고 answer을 지금의 값으로 저장을 합니다. 그 후 다음 검사를 하기 위하여 length를 0으로 변경합니다. 반복이 끝나면 저장된 answer을 반환하여 마무리합니다.

function solution(array: number[]): number {
  let answer: number = -1;
  array = array.sort((a, b) => a - b);
  let maxLength: number = 0;
  let length: number = 0;
  for (let i = 0; i < array.length; i++) {
    length++;
    if (array[i] != array[i + 1]) {
      if (maxLength == length) {
        answer = -1;
      } else if (maxLength < length) {
        maxLength = length;
        answer = array[i];
      }
      length = 0;
    }
  }
  return answer;
}
728x90
저작자표시 비영리 변경금지 (새창열림)
    'IT공부/프로그래머스 (TypeScript)' 카테고리의 다른 글
    • [프로그래머스] 콜라 문제 (TypeScript로 풀기)
    • [프로그래머스] JadenCase 문자열 만들기 (TypeScript로 풀기)
    • [프로그래머스] 완주하지 못한 선수 (TypeScript로 풀기)
    • [프로그래머스] 할인 행사 (TypeScript로 풀기)
    무지개 곰
    무지개 곰
    java solidity react javascript등 프로그래밍 공부 기록

    티스토리툴바