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으로 합을 계산하고 값을 찾을까도 생각해봤지만 시간 복잡도는 비슷한데 메모리를 더 많이 쓰는 것 같아서 패스했다.