{}연습장
대시보드학습스킬 경로문제모의고사라이브 코테복습데이터
문제 목록〉해시〉로그 태그에서 k번 등장 문자 찾기← 이전다음 →
#010 · 해시쉬움빈도 카운팅

로그 태그에서 k번 등장 문자 찾기

문제

서버는 요청을 처리할 때마다 담당 모듈을 소문자 한 글자로 기록해 하나의 긴 태그 문자열을 만듭니다. 운영팀은 "전체 로그에서 정확히 k번 등장한 모듈 중, 가장 먼저 기록된 것"을 찾아 점검하려고 합니다.

태그 문자열 log와 정수 k가 주어질 때, 전체 문자열에서 등장 횟수가 정확히 k인 문자들 중 가장 앞에 나오는 문자의 인덱스를 반환하는 solution(log, k) 함수를 작성하세요. 조건을 만족하는 문자가 없으면 -1을 반환합니다.

인덱스는 0부터 시작합니다.

예시

log k 반환값 설명
"abbacdc" 1 5 a·b·c는 2번씩, d만 1번 등장
"wxwxyz" 2 0 w와 x가 2번씩 등장, 그중 앞선 것은 인덱스 0의 w
"qqrrssq" 1 -1 1번만 등장하는 문자가 없음
"aaabbbcd" 3 0 a와 b가 3번씩, 앞선 것은 인덱스 0의 a

제약 조건

  • 1 ≤ log.length ≤ 100,000
  • log는 영어 소문자로만 이루어져 있습니다
  • 1 ≤ k ≤ 100,000 (k가 log.length보다 클 수 있습니다)

시간 복잡도 목표: O(n)

테스트 케이스

예시 1: d만 1번 등장 → 인덱스 5
입력: log = "abbacdc", k = 1
출력: 5
예시 2: w와 x가 2번씩 → 앞선 w의 인덱스 0
입력: log = "wxwxyz", k = 2
출력: 0
예시 3: 1번 등장 문자 없음 → -1
입력: log = "qqrrssq", k = 1
출력: -1
예시 4: a와 b가 3번씩 → 인덱스 0
입력: log = "aaabbbcd", k = 3
출력: 0
마지막 문자만 조건 충족
입력: log = "zyxzyxw", k = 1
출력: 6
길이 1 문자열
입력: log = "t", k = 1
출력: 0
k가 문자열 길이보다 큰 경우
입력: log = "t", k = 2
출력: -1
solution.ts
에디터 로딩 중…

▶ 실행은 기록 없이 채점만, 제출은 결과가 진행률·오답노트에 기록됩니다.