[하루기록] 22.12.17

지찬우·2022년 12월 17일
0

하루기록

목록 보기
4/10
post-thumbnail

‘너는 기본이 안 돼있어’

오늘 글을 못 쓸 뻔했다. 그래도 다행히 아르바이트 중에 손님도 없고 좀 여유가 있어서 짧게나마 써볼까 한다.


오늘은 SOLID에 대해 배웠다. 대충은 알고 있는 내용이었지만, ‘언제 제대로 공부해 봐야지’라는 생각만 하고 있었고 제대로 알고 있는 것은 아니었다. 그래도 이제라도 배우게 돼서 다행이다.

복습해 보자면

  • 단일 책임 원칙
  • 개방 폐쇄 원칙
  • 리스코프 치환 원칙
  • 인터페이스 분리 원칙
  • 의존관계 역전 원칙

그래도 다행히 기억은 나는 것 같다 ㅎㅎ 각각의 의미를 설명해 보라고 하면 제대로 할 자신은 없다. 이따 아르바이트 끝나고 한 번 더 봐야겠다.

오랜만에 백준

오랜만에 백준 문제를 풀어보았다. LCS와 최단 경로 문제였는데 LCS는 예전에 좀 알아보기도 했었고 어찌저찌 풀기는 했다. 문제는 최단 경로 문제였다. Dijkstra 알고리즘을 사용해야 한다는 것은 알고 있었지만, 우선순위 큐가 자꾸 이상하게 작동했다… 그렇게 두 시간을 하다가 아르바이트 갈 시간이 되어서 그냥 그만두고 나왔다.(학교 카페에서 하고 있었다.) 출근하면서 계속 생각을 해봤다. ‘뭐가 문제지.. 기본으로 돌아가자.’라는 생각을 하고 우선순위 큐의 원리에 대해 생각해 보았다. 우선순위 큐는 힙 자료구조를 사용한다. 힙은 데이터를 삽입하거나, 데이터를 꺼내야 정렬이 된다. 그게 문제였다.

나는 우선순위 큐에 사용자 정의 클래스 객체를 넣어두고, 중간에 객체의 속성값이 변경되게 하는 구조였다. 당연히 중간에 속성값을 바꾸면 자동으로 정렬이 될 것이라고 생각한 내가 바보다😅 poll()이나 add()를 사용하면 정렬이 된다는 것을 이제야 깨달았다. 이따 퇴근하고 다시 해봐야겠다. 블로그에 써둬서 까먹지는 않을 것 같다!


기본에 충실하자!!!

profile
좋은 개발자가 되자.

0개의 댓글