반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- ip
- Nestjs
- 수학
- 프로그래머스 레벨 2
- 백준
- 레벨 1
- dfs
- Algorithm
- Node.js
- 가천대
- Crawling
- 자바스크립트
- HTTP 완벽 가이드
- 프로그래머스
- 쉬운 문제
- 타입 챌린지
- 알고리즘
- BFS
- 그래프
- 타입스크립트
- type challenge
- 소켓
- dp
- typescript
- TCP
- socket
- HTTP
- javascript
- 문자열
- 크롤링
Archives
- Today
- Total
kakasoo
[node.js] 문자열 압축하기 ( 프로그래머스 레벨2 ) 본문
반응형
// 프로그래머스 레벨2 문자열 압축하기를 풀었습니다.
// 매우 어려웠다.
const solution = (s) => {
if (s.length === 1) {
return 1;
}
let minValue = 987654321;
for (let i = 1; i <= s.length / 2; i++) {
let cnt = 1;
let str = s.substr(0, i);
for (let j = i; j <= s.length - i; j = j + i) {
let prev = s.substr(j - i, i);
let next = s.substr(j, i);
// console.log("prev, next : ", prev, next);
if (prev === next) {
cnt++;
if (s.length - i < i + j) {
str += cnt;
}
} else {
if (cnt !== 1) {
str += cnt;
str += next;
} else {
str += next;
}
cnt = 1;
}
}
str += s.substr(s.length - 1 - (s.length % i), s.length % i);
if (str.length < minValue) {
minValue = str.length;
}
}
return minValue;
};
반응형
'프로그래밍 > 알고리즘 풀이' 카테고리의 다른 글
[node.js] 구명보트 ( 프로그래머스 레벨2 ) (0) | 2021.06.29 |
---|---|
[node.js] 큰수 만들기 ( 프로그래머스 레벨2 ) (0) | 2021.06.29 |
[node.js] 짝지어 제거하기 ( 프로그래머스 레벨2 ) (0) | 2021.06.29 |
[node.js] 영어 끝말잇기 ( 프로그래머스 레벨2 ) (0) | 2021.06.29 |
[node.js] 최솟값 만들기 ( 프로그래머스 레벨2 ) (0) | 2021.06.29 |