자바스크립트 코딩테스트
https://programmers.co.kr/learn/courses/30/lessons/60057
코딩테스트 연습 - 문자열 압축
데이터 처리 전문가가 되고 싶은 "어피치"는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문
programmers.co.kr
// https://programmers.co.kr/learn/courses/30/lessons/60057
function solution(s) {
if (s.length === 1) {
return 1
}
let splited_strings = []
for (let i = 1; i <= s.length / 2; i++) {
let splited_string = []
for (let j = 0; j < s.length; j += i) {
splited_string.push(s.substring(j, j + i))
}
splited_strings.push(splited_string)
}
return Math.min(...splited_strings.map(zip_length))
}
// reduce 메소드를 활용한 문자 압축
function zip_length(arr) {
let reserve
let count = 0
let zip = arr.reduce((acc, value, index) => {
if (!reserve) {
reserve = value
count = 1
} else if (value === reserve) {
count++
} else {
if (count === 1) {
acc += reserve
} else {
acc += count + reserve
}
reserve = value
count = 1
}
if (index === arr.length - 1) {
if (count === 1) {
acc += reserve
} else {
acc += count + reserve
}
}
return acc
}, '')
return zip.length
}
꽤 힘겹게 푼 것 같다. reduce 메소드를 활용해서 뿌듯하다.
Node.js와 express로 만드는 블로그 api 설계 해보기
https://traveling-wallaby-56e.notion.site/Node-js-express-899e3b788059410b8ba4394ef975e7b0
'Development' 카테고리의 다른 글
[AWS][ec2] port forwarding 변경하기 (0) | 2022.01.25 |
---|---|
[TIL] mongoose 에러, ajax, 게시판 만들기 (0) | 2022.01.24 |
[WIL] 항해99 2주차 (0) | 2022.01.23 |
[TIL] CS 공부, 코딩 테스트, Node.js 수강 (0) | 2022.01.22 |
[TIL] javascript 객체 초기자, 구조 분해 할당 / 논리 게이트 (0) | 2022.01.21 |