본문 바로가기
Algorithms/simulation

종만북 p14~23

by OKOK 2021. 5. 2.

"가능한 한 많은 문제 풀기 

프로그래밍 대회를 제대로 준비하기 위해 공부해야 할 주제는 굉장히 많습니다. 예를 들어 이 책은 전체 서른두 개 장이나 되는데, 이것으로도 대회에 필요한 주제를 전부 다룰 수는 없습니다. ... 그러나 복잡한 알고리즘을 하나 더 아는 것보다는 실제로 자신이 아는 것을 이용해 문제를 풀 수 있는 능력이 훨씬 더 중요합니다. ... 이런 경험과 능력은 실제 문제를 직접 풀어 보는 과정에서만 기를 수 있으므로 ... "

 

"가능한 한 많은 프로그래밍 대회에 참가하기 
실제 대회에 참가해서 다른 사람과 경쟁하는 경험은 혼자서 문제를 푸는 것보다 훨씬 많은 도움과 자극이 됩니다. 그것이 인터넷 모의고사라고 하더라도 대회가 끝난 뒤 혼자서 연습하는 것보다 훨씬 도움이 되기 때문에 가능한 한 많은 대회와 모의고사에 참여하기를 권장합니다."

 

"디버거 없이 디버깅하기 : 역시 컴퓨터가 한 대밖에 없으므로, 디버거를 켜는 것은 팀의 전체 속도에 치명적인 영향을 미칩니다. 디버깅은 항상 눈으로 할 수 있도록 연습해야 합니다."

 

"간단한 형태의 문서화 : 소스 코드들이 하는 일, 실행 전 조건, 실행 후 조건들을 간략하게 주석으로 적어 두면 대회 중에 큰 도움이 도비니다. 예를 들어 각 함수의 사전 조건과 사후 조건을 명시해 두면 대회 중에 큰 실수를 방지할 수 있습니다."

 

"클래스 형태로 준비하기 : 소스 코드가 복잡한 자료 구조를 이용하는 경우에는 이 자료들을 클래스 형태로 정의해 두는 것이 좋습니다. 클래스로 만드는 작업은 타이핑도 길어지고 번거롭지만 코드의 블랙박스화가 강제되기 때문에 팀 노트를 만드는 사람과 실제 사용하는 사람이 다르더라도 초기화나 기타 까다로운 점들에 신경을 쓰지 않아도 된다는 장점이 있습니다."

 

"Intorucction to Algorithms : 네 명의 저자 이름 첫 글자를 따서 CLRS라고도 부르는 이 책은 전세계 전산학과의 알고리즘 수업에서 널리 사용되는 알고리즘 교과서로 ... 
Programming Chanllengses : ...
The Art of Computer Programming : ...
프로그래밍 콘테스트 챌린징 : ... "

"문제 해결 능력은 프로그래밍 언어나 알고리즘처럼 명확히 정의된 실체가 없는 추상적인 개념이기 떄문에 단순한 반복만으로는 연마하기 어렵습니다."

"이 수련의 목표는 문제를 푸는 것이 아니라 문제를 푸는 기술을 연마하는 것입니다. 이를 위해서는 자신이 문제를 어떤 방식으로 해결하는지를 의식하고 어느 부분이 부족한지, 어떤 부분을 개선해야 할지 파악해야 합니다." 

 

"파인만 알고리즘 1.칠판에 문제를 적는다. 2. 골똘히 생각한다. 3 칠판에 답안을 적는다. ... 파인만 알고리즘에서 우리가 배울 수 있는 또 다른 교훈은 문제를 적는 단계가 있다는 것입니다. 별 의미가 없는 것 같지만, 문제를 다시 적기 위해서는 문제를 읽고 이해한 뒤 자신의 언어를 이요해 재정의해야 하기 때문에 이 단계는 아주 중요합니다."

 

"1. 문제를 읽고 이해한다.

2. 문제를 익숙한 용어로 재정의한다.

3. 어떻게 해결할지 계획을 세운다.

4. 계획을 검증한다.

5. 프로그램으로 구현한다.

6. 어떻게 풀었는지 돌아보고, 개선할 방법이 있는지 찾아본다."

 

"처음 참가하는 사람부터 과거의 챔피언까지 모든 프로그래밍 대회 참가들이 공통으로 하는 실수가 있다면 바로 문제를 잘못 읽는 실수이기 때문입니다. ... 문제 설명을 공격적으로 읽으며 문제가 원하는 바를 완전히 이해하는 과정이 반드시 필요합니다. "

'Algorithms > simulation' 카테고리의 다른 글

[LeetCode] Squares of a Sorted Array  (0) 2021.05.05
[leetcode] Find Numbers with Even Number of Digits  (0) 2021.05.05
Topcoder SRM 연습하기  (0) 2021.05.02
알고리즘 문제 해결 전략 공부 시작!!  (0) 2021.05.02
Check Sum  (0) 2021.04.24

댓글