99클럽 코테 스터디 10일차 TIL + 20240801

Yellta·2024년 8월 1일
0

TIL

목록 보기
44/73

1. c++ Priority Queue사용법

설명

  • 최대 힙을 사용한다.(넣으면 가장 내림차순으로 정렬된다.)
priority_queue<int> pq;

최소 힙

priority_queue<int, vector<int>, greater<int>> pq;

2. Stream와 for문 사용 속도 차이

설명

  • Stream은 라이브러리를 불러와야한다.
  • for loop보다 느릴 수 있다.

라이브러리를 불러와야하기 때문에 for문보다 느릴 수도 있다.

3. ArrayList와 LinkedList의 차이

설명

LInkedList

  • LinkedList - > O(n) ArrayList보다 작다.
  • 요소 삽입시 객체를 생성하고 서로 참조한다. 이 과정에서 메모리를 사용한다.

ArrayList

  • ArrayList는 기본적으로 배열 구조이다.

n이 10만 100만 억으로 올라가게 되면 LinekdList가 유리하게 된다. (연산 수행이 많이 일어날 때 O(n)이라서 )

4. 우선순위 큐

설명

우선순위큐 - 힙 - 트리
우선순위큐는 힙으로 구성되어있고 힙은 트리로 구성되어있다.
힙은 요소를 뺄 때 정렬을 수행해준다. 그래서 넣고나서 큐를 그대로 출력하면 정렬되지 않은 상태로 있다.

5. Spring필기!

Spring필기는 아이패드에 담겨져 있다! 양이 많아서 올리기가 살짝 힘들다! 간략하게 설명하자면

SOLID원칙

Spring은 자바의 객체지향 언어의 성질을 그대로 뺴다박은 프레임 워크이다.
1. 단일 책임 원치
2. OpenClosed 원칙(개방 폐쇠 원칙)
3. Liskov치환 원칙
4. Interface Segregation 원칙
5. Dependency Inversion원칙

이렇게 다섯개가 있는데 자바로만 구성하면 OCP, DIP를 지키지 못하게된다.
interface로 구현했는데 결국은 내부 코드를 고쳐야한다던가...
이를 해결하기 위해 Spring은 외부 주입DI를 사용하는데 스프링 컨테이너에서 빈으로 등록된 객체친구들을 외부에서 주입해준다.

객체지향코드는 언제나 클라이언트-서버구조이다. 객체가 있으면 객체를 활용하는 것이 있고 둘은 연관 되어 있다. 만약 다른 기능을 원하면 객체를 바꿔끼우면 된다. 역할을 바꿔끼우는 것과 같은 논리이다. 이런 특성 떄문에 재사용성, 유지보수성에 객체지향언어가 좋다!


오늘은 피곤해서 메모를 많이 못했다. 사실 유투브를 보느라 못했다.
아무튼 오늘 문제는 어렵지 않았다! 종이로 푸는데 딱딱 잘 풀리는 느낌
내일은 꼭 미뤘던 메모를 마무리하자...


#99클럽 #코딩테스트준비 #개발자취업 #항해99 #TIL

profile
Yellta가 BE개발해요! 왜왜왜왜왜왜왜왜왜왜왜왜왜왜왜왜왜왜왜 가 제일 중요하죠

0개의 댓글