https://programmers.co.kr/learn/courses/30/lessons/60057
코딩테스트 연습 - 문자열 압축
데이터 처리 전문가가 되고 싶은 "어피치"는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문
programmers.co.kr
* 문제를 이해하는것이 가장 중요
* 여러 테스트 케이스 활용
**** 테스트케이스 "xxxxxxxxxxyyy" 의 경우 압축이 되면 10x3y 로 x가 10개, 두자리 수로 압축되기 때문에 해당 조건 꼭 넣어줘야 됨!!
int comp(string s, int n) {
string temp;
int times=s.size()/n;
int size = s.size();
int flag = 0;
int cnt = 0;
temp = s.substr(0, n);
for (int i = 0; i < times; i++) {
string next = s.substr((i+1)*n, n);
if (temp.compare(next) == 0) {
size -= n;
flag++;
}
else if (flag != 0 && flag<9) {
size++;
flag = 0;
}
else if (flag != 0 && flag>=9) {
size++;
size++;
flag = 0;
}
temp = next;
}
return size;
}
int solution(string s) {
int answer = s.size();
string temp=s;
for (int i = 1; i <= s.size(); i++) {
answer = min(answer, comp(temp, i));
}
return answer;
}
'코딩테스트 > 문제풀이' 카테고리의 다른 글
[프로그래머스] [1차] 추석 트래픽 C++ (0) | 2022.05.02 |
---|---|
[프로그래머스] 오픈채팅방 C++ (0) | 2022.05.02 |
[프로그래머스] 신규 아이디 추천 C++ (0) | 2022.04.28 |
[프로그래머스] 로또의 최고 순위와 최저 순위 C++ (0) | 2022.04.28 |
[프로그래머스] 신고결과 받기 C++ (0) | 2022.04.28 |