1. 실무에서 P, NP, NP하드 문제 구별하는게 도움이 많이 됨
2. P, NP문제는 적당한 전처리를 거쳐서 제약조건을 활용하면 생각보다 실용적으로 문제 해결이 가능함 예를 들면 정렬이 이미 되어있으면 탐색하기 쉬움
3. NP문제는 크기가 작으면 크게 고민안하고 일단 돌아가게 짜면됨 브루트포스로 짜라는건 아니지만 도메인 요구사항에 맞춰서 짜면됨
4. NP하드문제는 뇌를 비우고 휴리스틱과 근사알고리즘을 도입하면 됨
5. 시스템 확장하다보면 처음에 어중간한 설계때문에 P문제가 NP문제로 바뀌는 경우가 있음 이거 한번 겪으면 멘탈 나가니까 걍 처음부터 갈아엎는게 답임
6. 실무에선 입력이 완전히 주어지지 않았을 때를 가정한 온라인 알고리즘의 활용도 중요함
2. P, NP문제는 적당한 전처리를 거쳐서 제약조건을 활용하면 생각보다 실용적으로 문제 해결이 가능함 예를 들면 정렬이 이미 되어있으면 탐색하기 쉬움
3. NP문제는 크기가 작으면 크게 고민안하고 일단 돌아가게 짜면됨 브루트포스로 짜라는건 아니지만 도메인 요구사항에 맞춰서 짜면됨
4. NP하드문제는 뇌를 비우고 휴리스틱과 근사알고리즘을 도입하면 됨
5. 시스템 확장하다보면 처음에 어중간한 설계때문에 P문제가 NP문제로 바뀌는 경우가 있음 이거 한번 겪으면 멘탈 나가니까 걍 처음부터 갈아엎는게 답임
6. 실무에선 입력이 완전히 주어지지 않았을 때를 가정한 온라인 알고리즘의 활용도 중요함
이게 진짜 중요함.. 지가 해결하려는 문제가 뭔지도 모르는 땔감들이 너무 많다..
비번 까먹어서 여기 추가함 7. 데이터 로컬리티는 필요없어 보여도 일단 신경써서 만드는게 좋음 왠만한 크기의 문제에서는 캐시영향으로 성능향상 되는게 알고리즘에서 n을 logn으로 만드는것보다 훨씬 나음
8. 스토리지 랜덤 액세스는 캐시크기 벗어나는 순간 logn이 n된다고 생각하고 짜야됨 램은 O(1)라고 생각해도 되는데 스토리지 펌웨어가 탐색하는건 O(1)이 아니기 때문이지
ㄹㅇ 일반적으로 다루는 데이터 크기에서는 캐시빨 잘받는 O(n)이 O(1)보다 빠를 수도 있다. 결국 현시대 알고리즘은 캐시최적화를 전제로 깔고 드가는게 맞는 것 같음
이건 ps에서도 ㅇㅈ하는 부분
속이뻥!!!!!!!!