기가막히다..
문자열 반복 문제는 해시테이블을 이용하여 하나씩 카운트하면 편할 것 같다.
1. total int 값을 선언하고, 청크 dic 을 만든다. 여기에 청크의 개수를 메모할 것이다.
2. for 문을 두 개 돌린다. 하나는 청크의 길이, 하나는 시작 인덱스임.
2.1. for 문을 이용해 만든 청크를 정렬하여 반복을 없앤다.
2.2. 청크 dic에 정렬한 청크를 입력하고 카운트를 한다.
2.2.1 청크를 구성한문자가 같다면 똑같은 문자열으로 만들 수 있다.
2.2.2. 청크 하나일 때는 만들 수 있는 청크가 0이므로 dic 디폴트 값은 0으로 설정한다.
2.2.3. 청크가 n(n>1)개일 때, 만들 수 있는 청크는 n-1개 이다.
2.3. 따라서 청크의 디폴트 값은 0으로 설정한 후 이를 total에 더한다.
2.4. 청크 dic[청크] += 1 한다.
문제 풀이 링크(link)
'오늘의 공부 > 코딩테스트' 카테고리의 다른 글
[programmers] 자물쇠와 열쇠 (0) | 2020.05.12 |
---|---|
[HackerRank] New Year Chaos (0) | 2020.05.09 |
운영체제 알고리즘 SJF 와 디스크 컨트롤러 (0) | 2020.03.24 |
네트워크 Graph, BFS 알고리즘 (0) | 2020.02.27 |
[프로그래머스] 조이스틱 (0) | 2020.02.26 |