(1).백준 9913번 Max는 최고 빈도수를 출력해야 하는 문제였다.

처음엔 최고 빈도인 숫자를 출력해야 하는 문제라고 생각하고 now라는 변수를 추가한 다음

max값인 경우 해당 값을 now에 재할당하는 방식으로 풀었는데

막상 오답이 나와서 자세히 보니 그냥 최대 많이 나온 값의 수치를 출력해야 하는 문제였기 때문에

기존 로직에서 Math.max로 최대값을 바꾸는 방식으로 해결했다.

 

사실 이런 식으로 된다면 그냥 index로 처리해서 값을 넣어준 다음

최종적으로는 filter로 undefined를 제거하고 구조분해할당으로 Math.max를 해줘도 될 것 같지만

오히려 수동으로 하나씩 잡아주는게 더 시간복잡도에서 이득일 수 있다는 생각도 들었다.

const input = `12
1
2
5
6
3
7
11
345
754
2
5
2`.split('\n')

const map = {}

let max = 0

for(let i = 1 ; i < input.length ; i++){
    if(map[input[i]]){
        map[input[i]]++
    }
    else{
        map[input[i]] = 1
    }
    max = Math.max(max, map[input[i]])
}

console.log(max)

'회고' 카테고리의 다른 글

[개발일지] - 672(대체공휴일)  (0) 2025.05.06
[개발일지] - 671(어린이날)  (0) 2025.05.05
[개발일지] - 669(주말)  (0) 2025.05.03
[개발일지] - 668  (0) 2025.05.02
[개발일지] - 667(근로자의 날)  (0) 2025.05.01

+ Recent posts