알고리즘 문제 해결 전략 1 - ch2 요약

2015-09-07

Ch2. 문제 해결과정

  1. 문제 읽고 이해하기
  2. 재정의와 추상화 - 수학적 개념 등으로
  3. 계획 세우기
  4. 계획 검증하기
  5. 계획 수행하기
  6. 회고하기
    • 효과적인 회고 방법법은 문제를 풀 때마다 코드와 함께 자신의 경험을 기록으로 남기는 것
    • 간단한 해법과 함께, 어떤 방식으로 접근했는지, 문제의 해법을 찾는데 결정적이었던 깨달음
    • 맞추지 못했다면, 오답 원인도 꼭 적는다.
    • 같은 문제를 해결한 다른 사람의 코드를 보고 얻은 통찰을 기록
    • 초보시절에는 한 문제에 너무 매달려 있는 것도 좋지 않다. 일정 시간이 지나도록 고민해도 답을 찾지 못할 때는 다른 사람의 소스코드나 풀이를 참조한다는 원칙을 세우자! (몇시간이 적당할까? 1시간정도? - 다혜) 단, 다른 사람의 소스코드나 풀이를 참조할 때 나의 접근들을 되새겨 보고, 왜 이 풀이를 떠올리지 못했는지 살펴본다!
Read More

20150825 클린 코드 특강

2015-09-06

NHN NEXT 2015년 2학기 Web Programming 수업 중 외부 특강이 있었다. 지난 8월 25일 화요일엔, 네이버 Labs에서 yobi 시스템을 개발하신 채수원 님께 클린코드 강의를 들었다. 다음은 들으면서 내가 정리한 것들이다.

Read More

Dynamic Programming과 Greedy Algorithm

2015-09-01

다이나믹 프로그래밍(Dynamic Programming)과 그리디 알고리즘(Greedy Algorithm)은 모두 최적화 문제를 풀 때 사용하는 알고리즘 기법이다. (두 기법 모두 알고리즘 자체는 아니고, 알고리즘을 짜기 위한 기법(or 전략)인데, 왜 하나는 Programming이 붙고, 다른 하나는 Algorithm이 붙을까? 그 이유는 모르겠다) 두 기법은 모두 비슷한 문제를 푸는데 사용되기 때문에 언뜻 보면 두 개의 차이가 애매모호할 수 있다. 오늘은 이 두 기법의 개념을 정리하여 차이점을 확실히 알아두려 한다. 개념 정리 부분은 NHN NEXT의 자료구조 및 알고리즘 과목 lecture note를 참고하였다.

Read More