오늘 푼 문제
1. 문자열 압축 / Lv.2 / 시간 : 31분
programmers.co.kr/learn/courses/30/lessons/60057
function solution(s) {
if(s.length===1) return 1;
var answer = Infinity;
let max = s.length/2;
for(let n=1;n<=max;n++){
let arr = s.match(new RegExp(`.{1,${n}}`,'g'));
let cnt=1;
let len = arr.reduce((acc,cur,i)=>{
let next = arr[i+1];
if(cur===next) cnt++;
else{
if(cnt===1) acc+=cur;
else acc+=(cnt+cur);
cnt =1;
}
return acc;
},"").length;
if(len<answer) answer = len;
}
return answer;
}
완전 탐색으로 모든 경우의 수 (1부터 문자열의 길이/2 까지) 다 탐색해도 시간 괜찮음.
문자열 s를 n개로 나누는 정규식
s.match(/.{1,n}/g)
이 때 n을 변수로 사용하려면 new RegExp(`.{1,${n}}`,"g") 의 형태로 동적으로 생성해줘야 한다.
'알고리즘 문제풀이' 카테고리의 다른 글
[프로그래머스] 2020 카카오 공채 - 괄호변환 (0) | 2021.03.22 |
---|---|
[코테 자신감 올리기 프로젝트] 레벨 1만 조진다 (0) | 2021.03.09 |
[프로그래머스] 2021 카카오 공채 - 순위 검색 (0) | 2021.03.08 |
[프로그래머스] 2021 카카오 공채 - 메뉴 리뉴얼 (0) | 2021.02.24 |
[프로그래머스] 2021 카카오 공채 - 신규 아이디 추천 (0) | 2021.02.19 |