= Algorithm? = In mathematics and computer science an algorithm (the word is derived from the name of the Persian mathematician Al-Khwarizmi) is a finite set of well-defined instructions for accomplishing some task which, given an initial state, will terminate in a corresponding recognizable end-state (contrast with heuristic). Algorithms can be implemented by computer programs, although often in restricted forms; mistakes in implementation and limitations of the computer can prevent a computer program from correctly executing its intended algorithm. The concept of an algorithm is often illustrated by the example of a recipe, although many algorithms are much more complex; algorithms often have steps that repeat (iterate) or require decisions (such as logic or comparison) until the task is completed. Correctly performing an algorithm will not solve a problem if the algorithm is flawed or not appropriate to the problem. For example, a hypothetical algorithm for making a potato salad will fail if there are no potatoes present, even if all the motions of preparing the salad are performed as if the potatoes were there. Different algorithms may complete the same task with a different set of instructions in more or less time, space, or effort than others. For example, given two different recipes for making potato salad, one may have peel the potato before boil the potato while the other presents the steps in the reverse order, yet they both call for these steps to be repeated for all potatoes and end when the potato salad is ready to be eaten. Certain countries, such as the USA, controversially allow some algorithms to be patented, provided a physical embodiment is possible (for example, a multiplication algorithm may be embodied in the arithmetic unit of a microprocessor). ìˆ˜í•™ê·¸ë¦¬ê³ ì»´í“¨í„°ê³µí•™ì—서 ì•Œê³ ë¦¬ì¦˜(íŽ˜ë¥´ì‹œì•„ì˜ ìˆ˜í•™ìž Al-Khwarizmiì˜ ì´ë¦„ì—서 ìœ ëž˜ëœ ë‹¨ì–´ì´ë‹¤.)ì€ ì–´ë–¤ ë¬¸ì œë¥¼ í•´ê²°í•˜ëŠ”ë° ìžˆì–´ì„œ 잘 ì •ì˜ëœ ìœ í•œê°œì˜ ëª…ë ¹ì–´ë“¤ì˜ ì§‘í•©ì„ ë§í•œë‹¤. 여기서 ë¬¸ì œë¼ëŠ” ê²ƒì€ ì´ˆê¸°ìƒíƒœê°€ ì£¼ì–´ì§€ê³ ê·¸ì— ìƒì‘하는 ì¸ì§€ê°€ëŠ¥í•œ 종료ìƒíƒœì—서 종료ë˜ëŠ” ë¬¸ì œë¥¼ ë§í•œë‹¤. ì•Œê³ ë¦¬ì¦˜ì€ ì»´í“¨í„° 프로그램으로 êµ¬í˜„ì´ ë 수있다. (ë¹„ë¡ ì¢…ì¢… ì œí•œì ì¸ í˜•íƒœì´ì§€ë§Œ) 구현ìƒì˜ 실수와 컴퓨터 ìžì²´ì˜ 한계가 컴퓨터 í”„ë¡œê·¸ëž¨ì´ ë³¸ëž˜ ì˜ë„ëœ ì•Œê³ ë¦¬ì¦˜ì„ ì˜¬ë°”ë¡œ ìˆ˜í–‰í• ìˆ˜ 없게한다. ì•Œê³ ë¦¬ì¦˜ì˜ ê°œë…ì€ ìžì£¼ ë ˆì‹œí”¼ë¥¼ 예로 묘사ë˜ê³¤í•œë‹¤. (ë¹„ë¡ ë§Žì€ ì•Œê³ ë¦¬ì¦˜ì€ êµ‰ìž¥ížˆ ë” ë³µìž¡í•˜ì§€ë§Œ;;) ì•Œê³ ë¦¬ì¦˜ì€ ì¼ì´ ëë‚ ë•Œê¹Œì§€ 계산ì´ë‚˜ 비êµì™€ ê°™ì€ íŒë‹¨ì˜ ê³¼ì •ì„ ë°˜ë³µí•˜ê±°ë‚˜ 필요로한다. 만약 ì•Œê³ ë¦¬ì¦˜ì— ê²°í•¨ì´ ìžˆê±°ë‚˜ ë¬¸ì œì— ë§žì§€ 않는다면 올바른 ì•Œê³ ë¦¬ì¦˜ì„ ìˆ˜í–‰í•˜ëŠ” ê²ƒì´ ë¬¸ì œë¥¼ 해결하는 ê²ƒì€ ì•„ë‹ˆë‹¤. 예를 들어 ê°ìž ìƒëŸ¬ë“œë¥¼ 만드는 가설 ì•Œê³ ë¦¬ì¦˜ì€ í˜„ìž¬ ê°ìžê°€ 없다면 수행ë 수 없다. ë¹„ë¡ ê°ìžê°€ ê·¸ê³³ì— ìžˆëŠ” 것 처럼 ìƒëŸ¬ë“œë¥¼ 준비하는 ëª¨ë“ í–‰ìœ„ë¥¼ 했다 하ë”ë¼ë„ ë§ì´ë‹¤. 다른 ì•Œê³ ë¦¬ì¦˜ì€ ë™ì¼í•œ ì¼ì€ 다른 것 보다 시간, 공간, ë…¸ë ¥ì´ë¼ëŠ” 측면ì—서 ë”ìš± ì 거나 ë§Žì€ ëª…ë ¹ë“¤ì„ í†µí•´ì„œ 처리한다. == 스터디 == [ì•Œê³ ë¦¬ì¦˜/스터디] [AlgorithmStudy/2013] [AlgorithmStudy/2014] [AlgorithmStudy/2015] [AlgorithmStudy/2016] == ë¬¸ì œ ëª©ë¡ == [ì•Œê³ ë¦¬ì¦˜/ë¬¸ì œëª©ë¡]