프로그래머스 - 캐시[LRU, splice,slice정리]

Lumi·2021년 11월 5일
0

알고리즘

목록 보기
32/59
post-thumbnail

생각보다 이해를 한다면 코드로 구현하기는 쉽다.

  • 나는 이해가 조금 걸려서 좀 오래 걸렸다..ㅠㅠ

일단 캐시 안에 값이 있다, 없다로 따로 처리를 해주어야 하고

우선적으로 안에 있는 값이 최대 담을수 있는 값인지를 확인해 주어야 한다.

  • 최대 담을수 있는 상태라면 뺴준뒤에 담아야 한다.

내가 조금 헷갈렸던 부분은 splice와 slice의 차이이다.

  • 예전부터 헷갈렸다..ㅠㅠ
  • 끝에 다루어 보겠다!!

이 문제는 LRU라는 알고리즘을 사용한다.

LRU

가장 오랫동안 사용하지 않은 페이지를 교체하는 기법이다.

  • 코드를 짜다보면 어떤것인지 알게 된다.

뭐 추가적인 설명은 필요 없을것 같다...

이게 다이다.

  • 코드도 단순히 LRU를 구현한 것이다.

slice, splice

일단 둘의 가장 큰 차이점은 기존 객체를 보존 유무이다.

결론을 말하면 slice는 기존의 객체를 보존한다.

  • 반대로 splice는 기존 객체를 보존하지 않는다.

인자를 하나만 주었을떄에는 해당 index에 해당하는 값을 뺴내오지만 두개를 주었을떄에는

  • (a,b) => a 인덱스 부터 b인덱스 까지 를 반환한다.

여기서 큰 차이가 있다.

  • splice는 b인덱스 까지 반환을 하지만 slice b 인덱스를 포함하지 않는다.

아마도 내가 이부분을 가장 헷갈려서 아직 익숙하지 않다고 표현을 한것 같다.

profile
[기술 블로그가 아닌 하루하루 기록용 블로그]

0개의 댓글