2023. 12. 9. 17:35ㆍIT 정보
알고리즘이란 특정한 작업을 수행하기 위해 입력을 받고 원하는 출력을 만들어내는 과정을 기술한 것 입니다.
간단하게 말하면, 문제 해결의 절차라고 할 수 있는데요.
알고리즘을 설계할 때는 명확하고 모호하지 않은 정보가 필요합니다.
예를 들어서 학생 10명에게 시험 점수를 입력으로 받아 1등을 출력하는 작업을 한다면
입력과 출력을 아래와 같이 표현할 수 있습니다.
입력 : 10개의 점수 (79, 88, 57, 16, 92, 100, 75, 82, 88, 90)
출력 : 10개의 점수 중 최대값 (100)
이런 입출력들을 작성해보면 아래처럼 절차를 작성할 수 있습니다.
1. 점수 10개를 입력받는다.
2-1. 입력 받은 점수들을 하나씩 순회한다.
2-2. 순회하며 최대 값을 찾아낸다.
3. 2-2에서 얻은 최대 값을 출력한다.
이 내용들을 토대로 의사코드(pseudocode)를 작성할 수 있는데요.
최대점수를구하는함수(입력 x[]) {
maxX = x의 첫 번째 원소
반복문 e <- (x[]의 두 번째 원소부터 하나씩 순회하기) :
만약 e가 maxX 보다 크면 :
maxX = e
return maxX
}
의사 코드는 꼭 실제 코드일 필요는 없고, 자연어로도 작성할 수 있는 알고리즘을 표현하는 방식 중 하나입니다.
프로그래밍 언어와 유사하지만, 서로 간의 이해나 알고리즘을 작성하기 전에 스케치하는 느낌으로 작성하는 방법입니다.
이러한 점은 특정 언어에 제한되지 않고 알고리즘의 절차를 전달할 수 있다는 장점이 있습니다.
이런식으로 알고리즘은 문제를 해결하기 위한 절차나 방법을 의미하고, 넓은 의미로는 문제를 해결하기 위한 절차나 방법을 의미하는 단어로 사용됩니다.
-
입력 - 알고리즘은 0 또는 그 이상의 외부에서 제공된 자료가 존재해야한다.
-
출력 - 알고리즘은 최소 1개 이상의 결과를 가져야한다.
-
명확성 - 알고리즘의 각 단계는 명확하여 애매함이 없어야 한다.
-
유한성 - 알고리즘은 단계들을 유한한 횟수로 거친 후 문제를 해결하고 종료해야 한다. 알고리즘의 한 단계 이후 m의 값은 n 보다 작으며, m != 0이면 n의 값은 다음 번 단계에서 줄어든다.
-
효과성(수행가능성) - 알고리즘의 모든 연산들은 사람이 종이와 연필을 이용하여 유한한 시간 안에 정확하게 수행할 수 있을 정도로 충분히 단순해야 한다.
특히, 직접 코드를 작성하는 입장에서 주목할 점은 유한성인데요
대표적으로 프로그래밍에서 while 문의 경우 종료에 대한 조건을 신경쓰며 코드를 작성해야 합니다.
더 자세한 내용이 알고 싶다면?
돌핀코딩에서 알고리즘 강의를 무료로 수강해보세요!
https://dolphincoding.io/course/1/lesson
돌핀코딩 - Do it! 알고리즘 코딩테스트 - 핵심이론 강의
인공지능 돌고래와 함께하는 온라인 코딩 교육 플랫폼
dolphincoding.io:443
https://dolphincoding.io/course/56/lesson
돌핀코딩 - 빠르고 효율적인 코드를 작성하기 위한 알고리즘 강의
인공지능 돌고래와 함께하는 온라인 코딩 교육 플랫폼
dolphincoding.io:443
[출처]
https://product.kyobobook.co.kr/detail/S000001743653
https://namu.wiki/w/%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98
'IT 정보' 카테고리의 다른 글
돌핀코딩 도입으로 학습 효율 43.7% 향상, 학생 학부모 교육 만족도 급상승 | 에이다코딩 대표님 인터뷰 (2) | 2024.09.22 |
---|---|
[PS] 프로그래밍, 알고리즘 문제를 풀기 위해 어떻게 접근해야 할까? (1) | 2023.12.18 |
[채널 생성] 학교/학원/기업 전용 코딩 학습 사이트 만들기 (1) | 2023.12.04 |
중학생 코딩 교육, 이제 엄마가 직접 해요! 아이 교육부터 취업까지 (0) | 2023.08.01 |
돌핀스튜디오에서 돌핀 라이브러리 (dolphinlib) 사용하기 (0) | 2023.07.28 |