CLRS C++로 구현해봤읍니다.

약 반년의 시간을 이 책을 끌어안고살았는데
반이넘게 못푼 연습문제와 대부분 못푼 problem 들…

내용파트만 읽은 부분이라도 아직도 책은 30퍼센트정도 남았고 더이상은 책만을 읽어도 제 능력으론 이해를 못하는 수준(머리에서 계속 튕겨냅니다)까지왔네요

공부하면서 본 의사코드들을 Cpp로 옮겨보았습니다.
이 레포를 완성하려고 꽤나 노력했는데 그럴수록 제 자신의 한계가 돋보이네요…

아직까지 완성하지 못한 부분이 많이 있습니다만, 당분간은 이 레포를 빡빡하게 업데이트 하지는 않을듯싶어 지금 올립니다.

혹시 공부하는분들에게 도움이 되었으면 좋겠습니다.


이상하게 함수 인자가 많고 변수명이 이상하다고 생각하는 부분(노드 인자명이 X,YZ라던가)이있는것은
최대한 의사코드의 원 모양을 살리기위해서 그렇게했습니다.

이를 제외한 함수명이 제가봐도 이상하다고 느끼는게 많은데…
예를들면 DFS후에 탐색 직전노드를 책에서 v.f에 저장하지만 여기서는 DFSf라는 벡터에 저장을한다던가…
레파안에 이상한 변수명에대해서 적절한 제안을 해주시면 너무 감사하겠습니다…

1 Like

저도 레포 파서 구현해볼 책들을 골라놓고는 몇년째 손만 놓고 있는데, 근성에 오지게 박수 드리고 갑니다.

:clap: :clap::clap: :clap::clap: :clap:

어… 일단 코드를 좀 봤는데…

void RECURSIVE_ACTIVITY_SELECTOR(int s[], int f[], int k, int n, std::vector<int> &a)
{
	int m = k + 1;
	while (m < n && s[m] < f[k])
	{
		m = m + 1;
	}
	if (m < n)
	{
		a.push_back(m);
		RECURSIVE_ACTIVITY_SELECTOR(s,f,m,n,a);
	}
	return;
}
  • C++에서 C 스타일 배열은 abomination 입니다. std::vector 씁시다…
  • 변수명이 나쁩니다.
  • CLRS는 연습문제가 좋은 책이니, 연습문제도 풀어봅시다. 저도 제 깃헙에 CLRS 연습문제 올릴 거라능… 그렇다능…

레포 기간이 길다보니 중구난방적으로 자료구조를 썼습니다.
일단 첫번째는 빨리 반영하겠읍니다.
두번째는 어떻게 머리는 쥐어짜데 어렵네요…
참고로 해당 코드는 모두 책의 변수명을 따랐습니다

세번째는 안푸는게 아니라 못푸는겁니다…ㅜㅜ