Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[java] 2182. Construct String With Repeat Limit #112

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

Voyager003
Copy link
Contributor

문제: 2182. Construct String With Repeat Limit
언어: java

풀이 과정

접근 방법

  1. TreeMap을 사용하여 문자별 개수를 저장하고 역순으로 정렬
  2. 가장 큰 문자부터 사용하되, repeatLimit을 초과하지 않도록 관리
  3. limit에 도달하면 다음으로 큰 문자를 한 번 사용하고 다시 가장 큰 문자 사용
  4. 다음 문자가 없으면 종료

시간/공간 복잡도

  • 시간 복잡도: O(N)
    • N은 입력 문자열의 길이
    • TreeMap 연산은 O(logK)이지만 K는 최대 26(알파벳 소문자)로 상수
  • 공간 복잡도: O(1)
    • TreeMap의 크기는 최대 26으로 상수

어려웠던 점

  1. 연속된 문자 개수를 tracking하는 로직
  2. limit에 도달했을 때 다음 문자 선택 처리
  3. TreeMap 사용 시 키가 없는 경우의 예외 처리

학습한 점

  1. TreeMap의 유용한 메서드들 (firstKey, higherKey)
  2. 그리디하게 가장 큰 문자부터 사용하는 전략

리뷰 요청 사항

배열을 사용한다면, 그냥 가장 큰? z->a 순으로 이거의 index만을 기록..? 하면 되려나요

메모리도 줄이고..

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants