Notice
Recent Posts
Recent Comments
Link
거의 알고리즘 일기장
프로그래머스 _ 문자열 압축 본문
programmers.co.kr/learn/courses/30/lessons/60057#
풀이방법
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