자바스크립트 코딩테스트
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 |