본문 바로가기
C++/[AssortRock] C++ 기초 다지기

CPP_1. AssortRock 6일차 오프라인 수업_220914

by 헛둘이 2022. 9. 15.
코딩테스트 유형에 대한 이야기
  • 문자열 1문제
  • dfs( 재귀함수 ), bfs( 큐 ) 1문제
  • 그리디 알고리즘
  • 다이나믹 프로그래밍(DP)
  • DP문제는 문제를 만족하는 특정 공식이 있으며
  • 그 공식으로 풀지 않으면 풀리지 않거나 성능이 매우 떨어짐
  • 그래서 뭐가 DP인지 확인하고 DP빼고 푸는 것도 전략
  • 문자열, 재귀, 그리디 중 2개는 맞아야 함

 

프로젝트 관리에 대한 이야기
  • 협업 툴 중 하나인 노션 사용
  • 팀 단위에선 유료

 

 

포트폴리오에 대한 이야기
  • 앞으로 다가올 포트폴리오 제작기간을 고려해서
  • 어떤 게임을 제작할 지 생각하고 이것 저것 플레이해봐야 함
  • 일단 생각으로는 던그리드나 스컬? 바로 떠오르진 않지만 RPG계열

 

 

링크드리스트에 대한 소개
  • 링크드리스트는 추가 삽입 삭제가 빈번하게 일어날 때 배열보다 높은 효율을 제공
  • 노드는 데이터와 다음, 이전 노드의 주소를 가지고 있으며, 이 주소를 통해 연결된 노드로 접근 가능
  • 이 노드가 연결된 형태를 링크드리스트라고 한다.

 

 

대입 연산 실수 대책에 대한 이야기
  • 조건문에서 (currentNode->next != nullptr) 이런 식일 때
  • (currentNode = nullptr) 이렇게 실수할 수 있다.
  • (nullptr != currentNode)는 문법적으로 허용되지 않으니 이런 실수를 미연에 방지할 수 있다.

 

링크드리스트 해제에 대한 이야기
  • 링크드리스트의 해제는 뒤에서부터 해줘야 한다. (앞에서부터 해제하면 연결이 끊기기 때문에)
  • 양방향 링크드 리스트의 경우 tail을 통해 손쉽게 해제를 구현할 수 있다.
  • tail 없이 노드 해제에 대한 실습 (next가 nullptr일 때까지 자신의 next를 인자로 재귀호출한 후
  • 다음 줄에서 delete를 하면 함수가 종료되면서 뒤에서부터 해제할 수 있다.

댓글