[2020카카오공채] 문자열 압축
https://programmers.co.kr/learn/courses/30/lessons/60057
코딩테스트 연습 - 문자열 압축 | 프로그래머스
데이터 처리 전문가가 되고 싶은 어피치는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문자열에서 같은 값이 연속해서 나타나는 것을 그 문자의 개수와 반복되는 값으로 표현하여 더 짧은 문자열로 줄여서 표현하는 알고리즘을 공부하고 있습니다. 간단한 예로 aabbaccc의 경우 2a2ba3c(문자가 반복되지 않아 한번만 나타난 경우 1은 생략함)와 같이 표현할 수
programmers.co.kr
문자열 처리 문제였습니다.
문자열 길이의 2분의 1 만큼 자르는 길이를 정해줍니다. (절반이상 자르면 중복검사를 할 수 없습니다)
반복문을 통해 문자열을 자르는 길이별로 중복검사를 해주며 새로운 String을 만들어서 최소 길이를 구합니다.
문자열 인덱스 범위조정과 예외처리를 해줘야하는게 까다로웠습니다.
* n번째 인덱스에서 len만큼 이 기준(n ~ n+len)이고 그 다음 len만큼이 비교대상(n+len ~ (n+len)+len) 이므로, (n+len) + len 이 문자열의 길이보다 큰지 검사해줘야 합니다.
* 문자열 길이가 1일때 => 1 리턴
* 인덱스 범위를 초과한 뒤 중복 유/무 검사, 중복이 있다면 뒤 에 남는 문자가 있는지 검사
ex) abcdefefi => abcd2efi
여기서 i를 처리 해줘야 합니다
'Algorithm & Data Structure > Kakao' 카테고리의 다른 글
[2019 카카오 블라인드] 오픈채팅방 (0) | 2020.09.11 |
---|---|
[2019 카카오 공채] 매칭 점수 (0) | 2020.04.09 |
[2019 카카오 공채] 길 찾기 게임 (0) | 2020.04.07 |
[2020카카오공채] 자물쇠와 열쇠 (0) | 2020.02.07 |
[2020카카오공채] 괄호 변환 (0) | 2020.02.04 |