Leetcode Java Kth Distinct String in an Array

업데이트:

문제

Link

코드

class Solution {

  public String kthDistinct(String[] arr, int k) {
    Map<String, Integer> map = new HashMap<>();
    for (String s : arr) {
      map.put(s, map.getOrDefault(s, 0) + 1);
    }
    for (String s : arr) {
      if (map.get(s) == 1 && --k == 0) {
        return s;
      }
    }
    return "";
  }

}

결과

Link

설명

  1. arr 내 고유하게 존재하는 k번째 문자열을 반환하는 문제이다.

  2. map은 문자열의 갯수를 젖아할 변수로, HashMap으로 초기화하여 arr을 반복하여 s를 키로 arr 내 동일 문자열 갯수를 값으로 넣어준다.

  3. arr의 값들을 s에 순차적으로 넣어 아래를 수행한다.
    • map에서 s의 값이 1인 고유 문자열이면서 k를 감소시킨 값이 0이 되는 k번째 문자열이면, s를 주어진 문제의 결과로 반환한다.
  4. 위의 반복이 완료되면 만족하는 문자열이 없으므로 빈 문자열(““)을 주어진 문제의 결과로 반환한다.

소스

Sample Code는 여기에서 확인 가능합니다.

댓글남기기