[데브코스 자율주행 TIL] DAY5 (09/22)

happy_quokka·2023년 9월 22일
0

2023.09.22 데브코스 5일차

일주일이 순식간에 지나갔다.
c++ 강의가 끝났지만 난 더 공부를 해야할 것 같다ㅜㅜ!!
오늘은 오전에 사랑니를 빼고 와서 평소보단 집중력이 떨어졌다.
부족했던만큼 주말에 보충하자!!

마지막 c++ 강의와 STL, 리눅스 vim 을 공부했다


📕 C++

항상 뭔가 헷갈렸던 iterator에 대해 배웠다! 이제 iter 잘 쓸수 있을 것 같다ㅎㅎ

iterator

  • auto 타입을 사용하는게 좋다
  • 전위, 후위 연산
    • 이 두개에 비용차이가 있다는 걸 처음 알았다!
    • int와 같은 경우에는 상관없지만 iterator는 전위를 사용하는 것이 바람직
    • 전위 : 자기 자신을 증가시키고 자기 자신을 return
    • 후위 : 자기 사본을 만들고 피연산자를 증가시킨 후 사본을 return

입출력 스트림

  • endl : 스트림에 개행 문자를 추가하고 출력 버퍼를 flush하는 역할도 하기 때문에 시간이 오래 걸림 / 되도록 '\n'사용하자
  • 입력 자체가 전체 실행 시간에 영향을 줄 수 있는 경우
    • ios_base::sync_with_stdio(false) : 콘솔 입출력에 대해 thread, buffer 동기화 해제
    • cin.tie(nullptr) : cin과 cout 연결 해제 (flush를 안함)

📌 STL

여러 알고리즘에 대해 배웠다. find, binary_search 등등 오늘은 내용이 많지 않았다.


📝 리눅스 기초 vim

어제 vim 강의를 다 못들어서 오늘 마저 들었다. 실습도 진행하면서 하다보니 시간이 너무 오래 걸렸다ㅠㅠ
외워할 것들이 많아서 가능하면 주말에 정리하고 외워야겠다!!아자아자!


📚 과제

어제 과제 리뷰

  • 학번 자료형 int 범위로 가능하니까 string 보다는 int
  • 재배치되는 부분이 별로 없기 때문에 전체 정렬은 불필요!!
  • list, unordered_map 사용해서 구현...

캐시

  • 푸는데 오래 걸렸다...list 크기를 지정하고 싶어서 시도했지만 cache에 담긴 데이터 사이즈를 알기 어려워서 오래걸렸다. 결국 크기 지정 안하고 했다!
  • LRU : 오랫동안 참조되지 않은 페이지 교체
  • 삽입, 삭제, 찾기 연산을 봤을 때 vector보다 list가 효율적일 것 같아서 list 선택

수 찾기

  • binary_search 사용하면 존재 여부 확인 가능
  • 단, 그전에 sort 해야함

숫자 카드2

  • 정렬 후 upper_bound과 lower_bound 사용
  • for문과 map으로 합을 계산하고 값을 찾을까도 생각해봤지만 시간 복잡도는 비슷한데 메모리를 더 많이 쓰는 것 같아서 패스했다.

0개의 댓글