반응형
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 |
Tags
- 문자열
- BFS
- 백준
- 가천대
- dfs
- 수학
- Nestjs
- Node.js
- typescript
- HTTP 완벽 가이드
- TCP
- 프로그래머스
- dp
- 크롤링
- 알고리즘
- 레벨 1
- javascript
- 타입스크립트
- 그래프
- Algorithm
- socket
- ip
- Crawling
- 자바스크립트
- 프로그래머스 레벨 2
- 타입 챌린지
- 소켓
- 쉬운 문제
- type challenge
- HTTP
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 |