01 문제 해결과 프로그래밍 대회

프로그래밍은 문제 해결이다

프로그램이 사용할 수 있는 최대 메모리와 사용자가 답답해하지 않게 하기 위한 시간 제한도 유의해야 하고, 이 와중에 가능한 한 재사용성이 높은 간결한 코드를 작성해야 한다. 이렇게 많은 제약 조건과 요구사항을 이해하고 최선의 방법을 찾아내는 능력은 분야를 막론하고 좋은 프로그래머가 되기 위해 필수적이다.


프로그래밍 대회에서 배울 수 있는 것들

  1. 인터페이스가 없는 단순한 Input, Output으로 문제해결에만 집중할 수 있다.
  2. 명시적인 시간 제한과 메모리 제한이 있다.
  3. 정답과 오답의 여부가 훨씬 명확히 가려진다.
  4. 프로그램의 실행 시간이나 메모리 사용량 관련 정보가 실시간으로 제공된다.
  5. 프로그램의 규모가 작아 작은 부분에 집중할 수 있는 계기를 만들어 준다.
  6. 경쟁하는 환경에서 코드를 작성하게 된다. 경쟁은 실력을 늘리기 위한 동기가 되기도 한다.


이 책의 구성

  • 프로그래밍 대회의 문제 해결 방법론
  • 코딩과 디버깅에 대한 주의사항
  • 알고리즘의 정당성 증명과 효율성 분석
  • 알고리즘 설계 기법
  • 자료 구조


프로그래밍 대회


추천 도서

  • Introduction to Algorithms / Thomas H. Cormen, Charles E. Leiserson
  • Programming Challenges / Steven Sol Skiena
  • The Art of Computer Programming / Donald Ervin Knuth
  • 프로그래밍 콘테스트 챌린징 / Takuya Akiba

Leave a Comment