-
4. 알고리즘Computer Science/Boostcourse CS50 2021. 12. 24. 02:40728x90
평소에 프로그래밍을 하면서, "알고리즘"이라는 단어를 많이들 접해보셨을 것입니다.
어떤 문제를 푸는 데 있어서도 알고리즘은 거의 항상 쓰이고, 중요한 개념이지만 정확히 무엇을 뜻하는지는 모른 채 학습을 진행합니다. 이번에는 알고리즘의 정의와 조건 그리고 중요성에 대해 말씀드리고자 합니다.
알고리즘은 입력값(input)을 출력값(output)의 형태로 바꾸기 위해 어떤 명령들이 수행되어야 하는지에 대한 규칙들의 순서적 나열입니다. 간단히 말해서 주어진 문제를 해결하기 위한 절차나 방법이라고도 불립니다.
알고리즘의 중요한 조건으로는 정확성과 효율성이 있는데,
정확성은 본인이 선택한 알고리즘을 통하여 확실하게 그 문제를 해결할 수 있는지에 대한 것이고
효율성은 작업을 완료하기까지 얼마나 시간과 노력을 덜 들일 수 있는지에 대한 척도를 의미합니다.
이외에 프로그램이 무조건 종료되어야 한다는 유한성, 출력값이 1개 이상이어야 하는 조건을 가지고 있습니다.
실질적 개발에 적용되는 기초적인 아이디어로 현업에서는 구현하기 힘든 난이도의 알고리즘은 거의 사용되지 않지만, 코딩 테스트나 알고리즘 대회에서는 문제 해결 능력을 보기 위해 어려운 문제를 출제하기도 합니다.
또한, 종합적 개발 역량을 평가하기에 좋은 용도로 사용되므로 앞으로도 알고리즘 활용 능력은 중요해질 거라는
생각이 듭니다.
다음은 알고리즘을 활용한 프로그램입니다. (링크 참고)
4-1 애너그램 판별 프로그램
애너그램이란 문자의 구성은 같고, 배치 또는 뜻만 다른 문자열을 의미합니다. 버블 정렬 알고리즘을 이용하여 5개의 숫자로 구성된 문자열 애너그램을 판별하는 프로그램을 작성해보았습니다.
6ro-29.tistory.com
728x90'Computer Science > Boostcourse CS50' 카테고리의 다른 글
5. 메모리 (0) 2021.12.24 4-1 애너그램 판별 프로그램 (0) 2021.12.24 3-2 배열 Queue 구현 (0) 2021.12.24 3-1 학점 계산 프로그램 (0) 2021.12.24 3. 배열 (0) 2021.12.24