말랑한 하루
[Programmers] 문자열 압축 (Lv 2, JavaScript) 본문
반응형
[ 학습 내용 ]
substr(start, end) : start index 요소부터 end-1 요소까지의 문자열을 반환한다.
[ 소스 코드 ]
function solution(s) {
var answer = s.length;
for(var i=1; i<=parseInt(s.length/2); i++) {
let str = "";
let cnt = 1;
let tempStr = s.substr(0, i);
for (var idx=i; idx<=s.length; idx+=i) {
let nextStr = s.substr(idx, i);
if (tempStr === nextStr) {
cnt += 1;
} else {
cnt === 1
? str = str+tempStr
: str = str+cnt+tempStr;
cnt = 1;
tempStr = nextStr;
}
}
cnt === 1
? str = str+tempStr
: str = str+cnt+tempStr;
answer = Math.min(answer, str.length);
}
return answer;
}
[ 심화 코드 ]
-
[ 코드 분석 ]
주어지는 문자열을 1~n번까지 자를 때, 가장 최소가 되는 압축된 문자열의 길이를 구하는 문제이다.
문자열의 길이를 구하는데는 다음과 같은 조건이 걸려있다.
1) 문자열을 압축하지 않는경우 문자열의 길이가 최소 압축 길이
2) 압축될 수 있는 문자열의 길이는 (주어진 문자열의 길이 / 2) 이다.
3) 문자열 내 압축 가능한 문자를 찾는것이 아닌, 0~n index를 순환하며 압축가능한 문자열을 찾아야한다.
문제를 3번의 전자로 이해하여 풀이에 애먹었다.
반응형
'문제풀이 > Programmers' 카테고리의 다른 글
[Programmers] 메뉴 리뉴얼 (Lv 2, JavaScript) (0) | 2022.07.11 |
---|---|
[Programmers] 오픈채팅방 (Lv 2, JavaScript) (0) | 2022.07.08 |
[Programmers] 비밀지도 (Lv 1, JavaScript) (0) | 2022.07.06 |
[Programmers] 실패율 (Lv 1, JavaScript) (0) | 2022.07.06 |
[Programmers] 크레인 인형뽑기 게임 (Lv 1, JavaScript) (0) | 2022.07.06 |
Comments