문제 설명
"Diamond", "Ruby", "Emerald", "Sapphire", "Gold" 들이 가득한 보석 진열대가 있습니다. 이 진열대의 어느 지점부터 다른 지점까지 연속한 구간 전체를 훔쳐서 가장 적은 개수의 보석을 훔치면서 다섯 가지 보석을 모두 적어도 1개씩은 훔치고자 합니다.
보석 진열대의 보석 나열 정보가 담긴 jewels가 주어졌을 때, 다섯 가지 보석 모두를 모두 포함하는 연속한 구간 중 가장 짧은 구간의 길이를 반환하는 solution 함수를 작성하시오.
제한 사항
-
jewels의 길이는 5 이상 100,000 이하입니다. -
jewels에는 "Diamond", "Ruby", "Emerald", "Sapphire", "Gold" 다섯 종류의 문자열만 존재합니다. -
jewels에는 다섯 종류의 보석이 모두 반드시 적어도 한 번 이상 포함되어 있습니다.
예시 테스트케이스 설명
| 테스트케이스 번호 | jewels | return |
|---|---|---|
| 1 | ["Diamond","Emerald","Emerald","Ruby","Gold","Diamond","Emerald","Sapphire"] | 5 |
| 2 | ["Diamond","Emerald","Emerald","Ruby","Gold","Emerald","Sapphire","Gold"] | 7 |
| 3 | ["Emerald","Sapphire","Ruby","Diamond","Gold"] | 5 |
1번 테스트케이스 설명
- 네 번째("Ruby")부터 여덟 번째("Sapphire")까지의 연속 구간 [“Ruby”,“Gold”,“Diamond”,“Emerald”,“Sapphire”]에 다섯 보석이 모두 포함됩니다. 이 연속 구간의 길이는 5이며 다섯 종류의 보석을 모두 포함하는 연속 구간 중 가장 짧습니다.
2번 테스트케이스 설명
- 첫 번째("Diamond")부터 일곱 번째("Sapphire")까지의 연속 구간 [“Diamond”,“Emerald”,“Emerald”,“Ruby”,“Gold”,“Emerald”,“Sapphire”]에 다섯 종류 보석이 모두 포함됩니다. 이 연속 구간의 길이는 7이며 다섯 종류의 보석을 모두 포함하는 연속 구간 중 가장 짧습니다.
3번 테스트케이스 설명
- 첫 번째("Emerald")부터 다섯 번째("Gold")까지의 연속 구간 [“Emerald”,“Sapphire”,“Ruby”,“Diamond”,“Gold”]에 다섯 종류 보석이 모두 포함됩니다. 이 연속 구간의 길이는 5이며 다섯 종류의 보석을 모두 포함하는 연속 구간 중 가장 짧습니다.