Notice
Recent Posts
Recent Comments
Link
거의 알고리즘 일기장
프로그래머스 _ 문자열 압축 본문
programmers.co.kr/learn/courses/30/lessons/60057#
코딩테스트 연습 - 문자열 압축
데이터 처리 전문가가 되고 싶은 어피치는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문자
programmers.co.kr
풀이방법
1. 문자를 나누는 숫자 1 ~ 주어진문자열의 길이/2 for문
2. 비교
3. 줄어드는 숫자 = (원래길이) - (나중에 나오는 길이)
코드
#include <string>
#include <vector>
#include <algorithm>
#include <iostream>
using namespace std;
int solution(string s) {
int answer = 0;
//1. 단위
for(int divNum =1; divNum <=s.length()/2; divNum++)
{
int compressionRate = 0;
for (int i = 0; i < s.length();)
{
string str = s.substr(i, divNum);
int cnt = 0;
for (int j = i; j < s.length(); j += divNum)
{
string compareStr = s.substr(j, divNum);
if (str == compareStr)
cnt++;
else
break;
}
string repeatStr = to_string(cnt);
int numberLen = repeatStr.length();
if (cnt > 1)
//압축률 = (원래길이) - (나중에 나오는 길이)
compressionRate += (divNum * cnt) - (divNum + numberLen);
//건너뛰기!!
i += cnt * divNum;
}
answer = max(compressionRate, answer);
}
answer = s.size() - answer;
return answer;
}
numberLen를 잘못구했는데 눈에 띄지 않아서 ㅋㅋㅋㅋㅋㅋ 시간 좀 많이 날렸다
반응형
'알고리즘 문제풀이' 카테고리의 다른 글
프로그래머스 _ 자물쇠와 열쇠 (0) | 2020.09.16 |
---|---|
프로그래머스 _ 괄호 변환 (0) | 2020.09.11 |
프로그래머스 고득점키트 완전탐색 (0) | 2020.09.06 |
프로그래머스 고득점 키트 정렬 (0) | 2020.09.06 |
프로그래머스lv3 _ 이중우선순위큐 (0) | 2020.09.04 |
Comments