본문 바로가기

Algorithm

(3)
생각하는 프로그래밍과 알고리즘 나의 책장 한구석에서 한달에 한장정도만 읽히고 있는 아주 오래된 녀석이 있습니다. 생각하는 프로그래밍이란 책인데요, 원래 제목은 Programming pearls, 2 edition 입니다. 이 책은 좋은 알고리즘을 알려주는 좋은 책으로 잘 알려져 있습니다. 여러모로 저도 끼고만 있고 제대로 읽지 못하는 책중에 하나입니다. 각 알고리즘 문제는 정말 좋은 예제들인것 같습니다. 실력이 짧아서 제대로 풀지는 못하지만, 여러분들도 한번쯤 도전해 보면 참 좋을듯합니다. 프로그래밍 본질에 간한 15가지 칼럼을 기반으로 쓴 책입니다. 프랑스의 소설가이자 항공기 디자이너인 Antoine de Saint-Exupery는 "추가할 것이 더 이상 없을 때가 아니라 제거할 것이 없을 때, 디자이너는 완벽함에 도달했다는 것을 ..
Top Coder에 도전하세요! 평소 소프트웨어(Software) 개발에 관심이 많거나, 특히 알고리듬(Algorithm)이나 소프트웨어 디자인(Software Design)에 관심이 많다면 Top Coder(http://www.topcoder.com)라는 사이트에서 자신의 능력을 다른 사람들과 함께 겨루어 보는 것도 참 좋은 일이라고 생각합니다. 전 세계에서 소프트웨어에 관심이 많은 사람들이 모여서 자신의 능력을 겨루고 있는데 재미있는 점은 우리나라의 순위입니다. 현재 우리나라의 순위는 8위인데 세계최고의 소프트웨어 강국인 미국은 7위로서 별 차이가 없으며, 세계 2위의 소프트웨어 강국인 인도의 경우 14위로 우리보다 많이 떨어집니다. 인도의 경우 1133명이나 참여하고 있지만, 우리나라의 경우 149명정도밖에 참여하지 않았는데도 좋..
Algorithm 이란 Algorithm은 반드시 확신할 수 있어야 하며, Algorithm의 작동 방식을 배우는 가장 좋은 방법은 실제로 수행하여 보는 것이다. Algorithm의 현대적인 의미는 조리법, 공정, 방법, 기법, 절차, 루틴 등과 상당히 비슷하다. 다만 Algorithm은 5가지 주요한 특징을 가진다. 1. 유한성(finiteness) Algorithm은 여러 단계들을 수행한 후 유한한 횟수 후 반드시 종료되어야 한다. 이러한 유한성이 만족되어야 Algorithm으로 인정받을 수 있다. 2. 명확성(definiteness) Algorithm의 각 단계는 반드시 명확하게 정의되어야 한다. 수행할 행동은 모든 경우에 대하여 모호함 없이 엄격하게 명시해야 한다. Algorithm은 컴퓨터도 따라할 수 있을 정도로 명..