[알고리즘] - 순환 알고리즘 (Recursion Algorithm)
·
💻 Computer Science/자료구조-알고리즘
순환 알고리즘 (Recursion Algorithm) 순환(Recursion)은 어떤 알고리즘이나 함수가 자기 자신을 호출하여 문제를 해결하는 프로그래밍 방법입니다. 순환 알고리즘은 다른 말로 "재귀 알고리즘"이라고도 불립니다. 순환 알고리즘을 사용하면 순환이 진행될수록 문제의 크기가 작아지게 됩니다. 대표적인 예시로 "팩토리얼 정의"를 순환 알고리즘으로 나타낼 수 있습니다. 팩토리얼(Factorial, 계승) 팩토리얼은 다음과 같이 수학적으로 정의됩니다. $$ n!=\begin{cases} 1 & n = 0 \\ n \times (n - 1)! & n \leq 1 \end{cases} $$ 위 공식을 보아 알 수 있듯이 n이 0인 경우는 1로 정의되지만, n이 1보다 크거나 같은 경우에는 팩토리얼을 정..
[알고리즘] - 공간 복잡도(Space Complexity)
·
💻 Computer Science/자료구조-알고리즘
직접 구현하지 않고도 알고리즘의 효율성을 따져볼 수 있는 "알고리즘 복잡도 분석" 방법에는 2가지의 측면을 고려할 수 있습니다. 바로 "알고리즘의 수행시간"과 "알고리즘이 필요로 하는 기억공간의 양"입니다. 알고리즘의 수행시간을 고려하는 분석을 "시간 복잡도"라고 하며, 기억공간의 양을 고려하는 분석은 "공간 복잡도"라고 합니다. 이번 포스팅에서는 알고리즘이 필요로 하는 기억공간의 양을 다루는 "공간 복잡도"에 대해서 포스팅해보도록 하겠습니다. 공간 복잡도(Space Complexity) 공간 복잡도는 프로그램을 실행시킨 후 완료하는 데 필요로 하는 자원 공간의 양을 의미합니다. 즉, 알고리즘이 필요로 하는 "메모리의 양"을 의미합니다. 코딩테스트 문제들에 주로 보이는 "제한 시간 1초, 메모리 제한 1..
[알고리즘] - 시간 복잡도(Time Complexity)
·
💻 Computer Science/자료구조-알고리즘
직접 구현하지 않고도 알고리즘의 효율성을 따져볼 수 있는 "알고리즘 복잡도 분석" 방법에는 2가지의 측면을 고려할 수 있습니다. 바로 "알고리즘의 수행시간"과 "알고리즘이 필요로 하는 기억공간의 양"입니다. 알고리즘의 수행시간을 고려하는 분석을 "시간 복잡도"라고 하며, 기억공간의 양을 고려하는 분석은 "공간 복잡도"라고 합니다.이번 포스팅에서는 알고리즘의 수행시간을 다루는 "시간 복잡도"에 대해서 포스팅해보도록 하겠습니다.시간 복잡도(Time Complexity)시간 복잡도는 알고리즘을 이루는 연산들이 몇 번이나 수행되는지를 숫자로 표시합니다. 즉, 시간 복잡도는 "연산의 횟수"에 관심을 가지는 것이며 절대적인 알고리즘 수행 시간을 나타내는 것이 아닙니다. Q: 만약에 시간 복잡도가 알고리즘의 절대적인..
[컴퓨터 공학 개론] #13 - 인공지능 (完)
·
💻 Computer Science/컴퓨터 공학 개론
01. 인공지능 개요 1) 인공지능 개념 “인공지능(Artificial Intelligence)”이란 인간이 가지고 있는 지적 능력, 학습 능력, 추론 능력 등을 인공적으로 구현하는 기술입니다. 지능을 갖고 있는 기능을 갖춘 컴퓨터 시스템이며, 인간의 지능을 기계 등에 인공적으로 구현한 것입니다. 2) 강인공지능과 약인공지능 인공지능은 크게 “강인공지능”과 “약인공지능”으로 나뉩니다. 강인공지능(Strong AI): 인간이 하는 일을 인간과 유사한 방법으로 수행하는 자동화 시스템을 뜻합니다. 인간의 지능을 컴퓨터의 정리처리능력으로 구현하는 것이 목적입니다. 강인공지능의 정의가 인간과 동일한 방법으로 일을 수행하는 것이기에 최근 이슈가 되는 인공지능 문제는 대부분 강인공지능을 염두에 둔 것들입니다. 약인공..
[컴퓨터 공학 개론] #12 - 멀티미디어
·
💻 Computer Science/컴퓨터 공학 개론
01. 멀티미디어 개요 1) 멀티미디어 개념 “멀티미디어”는 다중 매체라고도 불리며, ‘Multi’와 ‘Media”를 합친 말입니다. 여러 가지 형식의 정보 컨텐츠와 ICT 기술을 활용하여 사용자와 상호작용하며 정보를 제공하는 미디어를 뜻합니다. 텍스트, 이미지, 사운드, 그래픽, 애니메이션, 비디오 등의 미디어가 두 개 이상 결합하여 컨텐츠를 생성하고 ICT 기술을 기반으로 하여 정보를 제공하는 기술입니다. 2) 멀티미디어 분류 멀티미디어는 “표현 미디어”, “저장 미디어”, “전송 미디어”, “제시 미디어”, “지각 미디어”로 분류됩니다. 표현 미디어: 멀티미디어 데이터 생성에 관련된 미디어입니다. 저장 미디어: 표현 미디어로 생성된 멀티미디어 데이터를 컴퓨터에서 처리 & 편집 & 재생하기 위한 저장..
[컴퓨터 공학 개론] #11 - 정보 보안
·
💻 Computer Science/컴퓨터 공학 개론
01. 정보 보안 개요 정보 기술의 빠른 발전은 사회 전반적인 발전을 이루어주고 많은 이점을 가져왔습니다. 그러나 동시에 사이버 범죄의 증가라는 부작용도 가져왔습니다. 사이버 상에서 일어나는 범죄 행위들과 개인 정보를 탈취 및 악용 행위도 크게 증가하였기에 정보 보안은 그 어느 때보다 중요한 이슈가 되었습니다. “정보 보안”은 정보를 위협으로부터 보호하는 것으로 정보의 수집부터 송수신하는 과정까지 일어날 수 있는 모든 정보의 훼손, 변조, 유출, 악용 등의 사고를 방지하기 위한 것입니다. 정보를 제공하는 공급자 측면과 사용자 측면에서 이러한 사이버 범죄 및 정보 위협을 미연에 방지하기 위한 목적을 두고 있습니다. 1) 정보 보안 필수 요소 정보 보안은 반드시 “기밀성”과 “무결성” 그리고 “가용성”을 유..
[컴퓨터 공학 개론] #10 - 인터넷과 모바일 컴퓨팅
·
💻 Computer Science/컴퓨터 공학 개론
01. 인터넷 “인터넷”은 전 세계 수 많은 컴퓨터 사용자들이 접속되어 있는 거대한 컴퓨터 네트워크입니다. 인터넷은 TCP/IP 프로토콜을 사용하는 글로벌 네트워크입니다. 인터넷의 역사는 “웹(WEB)”의 발전 과정을 통해서 알아볼 수 있습니다. 1) 인터넷 역사 인터넷은 1969년 미국 국방성의 컴퓨터 네트워크인 “아르파넷”에서 탄생했습니다. 처음에는 군사 프로젝트로서 이용되었지만, 점점 사용 범위가 커짐에 따라 군사용 네트워크를 “밀넷”, 민간용 네트워크를 “아르파넷”으로 분리하고 아르파넷은 “인터넷”이라는 이름으로 사용되기 시작했습니다. 그 이후, 본격적으로 웹(WEB)이 발전하기 시작했고 1989년 세계 최초 웹 브라우저인 “월드와이드웹(WWW)”이 탄생하고, 1993년에는 그래픽 기반 웹 브라우..
loading