티스토리 뷰
링크 : https://www.hackerrank.com/challenges/sherlock-and-valid-string/problem
문제>
입력 받은 문자들은 동일 진동 수여야 한다.(ex : aabb)
동일 진동 수가 아닌 것은 1개만 추가하거나 지울 수 있다.(ex : aabbc -> aabb || aabbcc)
위의 조건에 맞을 때 YES출력. 아닐 경우 NO 출력 하는 문제.
해결방법.
*Dictionary 사용.
받아온 문자열에서 문자 = key, 문자 수 = value로 Dictionary에 추가.
Dictionary의 value max와 min이 같다면 주파수 동일 이므로 YES 리턴.
Dictionary에서 value(문자 수)가 min과 max와 같은 값들의 수를 찾는다.
같지 않은 값이 나올 경우 추가1을 넘어가기 때문이 NO리턴.
min과 같은 수가 1이고 min이 1(오차허용범위)이라면 min만 제거 해주면 나머지 주파수는 동일. = YES.
max와 같은 수가 1이고 max - 1(오차허용범위)이 min과 같다면 나머지 주파수는 동일. = YES.
그 외는 NO리턴.
'주간 알고리즘풀기' 카테고리의 다른 글
[180131][HackerRank](C#)find-digits (0) | 2018.02.03 |
---|---|
[180130][HackerRank](C#)camelcase (0) | 2018.02.03 |
[180126][HackerRank](C#)Manasa and Stones (0) | 2018.01.29 |
[180125][HackerRank](C#)Lisa's Workbook (0) | 2018.01.29 |
[180124][HackerRank](C#)Fibonacci Modified (0) | 2018.01.29 |
댓글