코딩/1-JavaScript

댓글 알고리즘 을 추가

tree0505 2025. 6. 5. 10:29
반응형

댓글 알고리즘 을 추가해보자~ (설명 동영상) (해설은 수요일)

  • 댓글 알고리즘 

  • 댓글 알고리즘은 죽이되든 밥이되든 내가 만들어 보는게 중요하다. 
  • 자기가 스스로 아이디어를 내서 한번 만들어 보면 제일 좋다. 

디비 상황 

a

b

bb

bc

bcc

bd 

bcd 


화면 

-> bd 

-> bc 

-> -> bcd 

-> -> bcc 

-> bb 

a


  • db의 있는 순서랑 화면에 있는 순서가 다르다. 

댓글 알고리즘 해설

 

  • 댓글 알고리즘 가장 효율이 좋은게 있다.
  • 변수 3개를 사용해서 메모리 효율도 챙기고 댓글도 구현한다. 

  • ref => 글그룹 
  • step => 글 깊이 
  • level => 같은 그룹내에서 출력 순서 

  • 알고리즘이 다른 경우
  • 새글 
    • ref => 마지막 ref +1 
    • step => 1 
    • level =>  1 
  • 댓글 
    •  ref => 부모 ref (부모:클릭한 글 ) 
    • step => 부모 step + 1 
    • level => 부모 level + 1 
  • 특이한 알고리즘 
    • 수정사항 => 지금 나와 level이 같거나 크면 전부 자기 level + 1 

  • 디비 ref = 0 
    • a =>  ref => 1 . step => 1 . level => 1 
    • b => ref => 2 . step => 1 . level => 1
    • c => ref => 3 . step => 1 . level =>1 
    • b1(b에다가 댓글) => ref => 2 . step => 2 . level => 2 + 1  + 1 + 1 + 1 (수정사항에 해당이 안된다.) 
    • b2 => ref => 2 . step => 2 . level => 2  + 1 (문제가 생김 : 출력순서가 겹침 수정사항에 들어간다. b1 + 1 ) 
    • b21 => (b2에다가 댓글) => ref => 2 . step => 3 . level => 3  + 1  (수정사항에 들아감. b1 + 1 )
    • b3 => ref=>2 . step => 2 . level =>2 (수정사항 b2 + 1.  b21 + 1 . b1 + 1  ) 
    • b211 = > ref => 2 . step => 4. level => 5 (수정사항) 
  • 화면 
    • ref => 내림차순 . level => 오름차순 
    • c
    • b
      • -> b3 
      • -> b2 
      • -> -> b21 
      • -> -> -> b211
      • -> b1 

  • 위의 글 참고자료 

 

반응형