pseudo code
알고리즘(Algorithm)의 이해 : 의사코드
이전 강의에서 숫자, 문자, 영상, 사진 등을 컴퓨터가 이해할 수 있는 이진법으로 표현하는 것을 배웠습니다.
이것은 입력에 해당합니다.
그러면 컴퓨터는 입력을 받아 어떻게 출력을 만들어 낼까요?
알고리즘은 입력을 출력으로 만드는 처리과정입니다.
알고리즘 이란?
알고리즘은 문제 해결을 위한 단계들을 체계적으로 명시한 것을 의미합니다.
일상에서의 알고리즘
우리는 일상생활 속에서 알고리즘을 사용하고 있습니다.
몇 가지 예를 들어 보겠습니다.
1) 전화번호부에서 전화번호 찾기
전화번호룰 찾는 방법은 여러 가지가 있을 수 있습니다.
- 첫 페이지부터 순차적으로 뒤쪽으로 가면서 찾는 방법
- 마지막 페이지부터 순차적으로 앞쪽으로 가면서 찾는 방법
- 중간부터 찾고 찾고자 하는 전화번호가 없는 반을 배제한다. 다시 남은 페이지 중간을 찾고 반을 배제하는 걸 반복하는 방법
이 세 가지 중에서 효율적인 방법은 무엇일까요?
세 가지 다 결국은 전화번호를 찾기 때문에 잘못된 알고리즘이라고 할 수는 없습니다.
그러나 이 중에서 가장 적합한 알고리즘을 찾는 것이 중요합니다.
2) 자판기에서 음료수 뽑기
- 마시고 싶은 음료수 버튼을 누릅니다.
- 하단의 배출구를 통해 선택한 음료수를 받습니다.
- 음료수 값에 비해 투입된 돈이 액수가 많을 경우, 잔돈을 받습니다.
이와 같이 마시고자 하는 음료수를 뽑기 위해 필요한 절차와 일련의 진행 과정을 알고리즘이라고 합니다.
3) 또 다른 것들
이러한 일상생활 속의 알고리즘을 보면
- 최단 거리나 최단 시간 내에 집에서 회사까지 가는 길을 찾는 것
- 샌드위치를 만들기 위해 필요한 재료 준비와 조리를 순서대로 진행하는 것
- 마트에서 필요한 물건을 고르고 계산하는 것
이러한 것들 모두 알고리즘이라 할 수 있습니다.
컴퓨터 프로그래밍에서의 알고리즘
프로그래밍에서의 알고리즘이라고 해서 다르지 않습니다.
프로그래밍에서의 알고리즘은 input값을 통해 output값을 얻기 위한 처리 과정입니다.
이러한 문제를 해결할 때 정확하고 효율적으로 결괏값을 얻기 위해서는 좋은 알고리즘이 필요합니다.
1) 좋은 알고리즘이란?
프로그램의 품질은 알고리즘의 좋고, 나쁨에 따라 달렸다고 합니다.
좋은 알고리즘과 안 좋은 알고리즘을 나누는 기준이 따로 있을까요?
이것은 어떠한 기준을 두고 판단되는지에 대해 알아봅니다.
이해하기 쉽다.
알고리즘은 가능한 알기 쉬워야 합니다.
복잡하고 난해한 알고리즘을 작성하면 나중에는 본인조차 이해하기가 어렵게 되고, 여러 사람들과 협업 시 다른 사람이 곧바로 이해할 수 없게 되어 문제가 생길 수 있습니다.
또한 이러한 알고리즘은 올바른 결과가 나타나는 지도 검증하기 어렵기 때문에 틀린 부분을 찾기도 어렵게 되어 작업 능률이 저하됩니다.
속도가 빠르다.
속도가 빠르다는 것은 결과를 빨리 도출된다는 것입니다.
결과의 값이 같다면 짧은 시간 안에 올바른 결과를 얻을 수 있는 알고리즘이 더 좋은 알고리즘입니다.
효율적이다.
프로그램을 실행할 때 컴퓨터의 자원을 적게 사용해야 합니다.
CPU 점유율이 높거나 많은 메모리를 사용한다면 전체적인 시스템의 능률이 저하됩니다.
이렇게 되면 시스템의 증설이 필요하게 되고 많은 비용을 부담해야 합니다.
재사용이 쉽다.
과거에 작성한 것을 그대로 사용하거나 부분적으로 이용할 수 있다면 새로운 프로그램을 만드는 데 필요한 시간을 단축시킬 수 있습니다.
이를 위해서 실제 업무에서는 사전에 템플릿을 만들어 배포해 표준화를 합니다.
의사코드(pseudo-code)란 무엇인가?
프로그램이 수행할 내용 즉, 알고리즘을 단계별로 서술해 놓은 것을 말합니다.
의사코드에서 반드시 따라야 하는 규칙 같은 것은 없습니다..
하지만 다른 개발자들이 쉽게 이해할 수 있는 형식을 사용해야 합니다.
본인이 사용하려고 작성하는 경우 생각을 정리하고 계획한 것을 만드는데 도움이 되어야 합니다.
자유로운 의사코드 작성도 다음의 규칙 정도는 알고 작성해야 합니다.
순차적 명령문, 반복문, 조건문 정도만 알면 의사코드 작성을 위해 필요한 것은 다 알고 있는 것입니다.
의사코드 예문
할 일) 임금계산
이름, 시급, 업무시간, 공제율을 확인한다.
시급에 업무시간을 곱하여 임금을 계산한다.
임금에 공제율을 곱하여 공제금액을 계산한다.
임금에서 공제 액을 빼고 실수령액을 계산한다.
이름, 임금, 공제금액, 실수령액을 작성한다.
의사코드)
이름, 시급, 업무시간, 공제율을 확인한다.
계산한다.
임금 = 시급 * 업무시간
공제금액 = 임금 * 공제율
최종임금 = 임금 - 공제금액
이름, 임금, 공제금액, 실수령액을 파일에 저장한다.
간단히 의사코드를 살펴보았습니다.
논리적인 사고만 된다면 누구나 의사코드를 작성할 수 있습니다.
의사코드가 있으면 프로그램 언어의 문법만 배우면 누구나 프로그램을 할 수 있습니다.
'컴퓨터' '프로그램' '두렵다' '어렵다'
그렇지 않습니다. 처음이라 어렵게 느끼는 것일 뿐입니다.
누구나 처음은 어렵습니다.
다음 시간부터는 파이썬 프로그램을 배워보려고 합니다.
감사합니다.
Do it! SQL을 찾아 주셔서 감사합니다. 공감 ♥ , 댓글이 큰 힘이 됩니다. |
'IT > 파이썬 기초 (Python)' 카테고리의 다른 글
#006 파이썬 기초 : 주피터 노트북 개발도구 (99) | 2023.02.16 |
---|---|
#005 파이썬 기초 : 실습환경 아나콘다 설치 (92) | 2023.02.15 |
#004 왜 파이썬인가? 최고의 입문 프로그래밍 언어 Python (163) | 2023.02.14 |
#002 정보의 표현 아스키코드(ASCII), 유니코드(UNICODE), RGB (79) | 2023.02.12 |
#001 2진법 비트(bit) 바이트(byte) 컴퓨터 쉽게 이해하기 (89) | 2023.02.03 |
댓글