반응형
알고리즘
알고리즘 정의
어떤 일을 해결하기 위한 방법이나 문제를 해결하기 위한 절차등을 단계적으로 나열한 것
* 효율적인 알고리즘은 보다 짧은 시간, 적은 자원으로 작업을 빠르고 정확하게 수행할 수 있다.
알고리즘의 조건
입력
필요한 자료를 외부로 부터 받아들인다. 경우에 따라, 자료가 외부로부터 입력되지 않고 내부에서 생성할 수도 있다.
출력
문제를 처리 했을때 적어도 하나 이상의 결과값이 나와야한다.
명확성
각 단계별로 무엇을 하는지 명확하게 표현되어야한다.
수행 가능성
알고리즘의 각 명령어는 논리적이어야한다.
유한성
실행하면 주어진 과정을 처리한 후 반드시 종료되어야 한다.
알고리즘의 표현 방법
1. 자연어
사람이 사용하는 국어나 영어와 같은 언어를 이용해 나타내는 방법
2. 순서도
주어진 문제를 해결하거나 업무를 처리할 때, 처리할 일의 순서를 한 단계씩 구분하여 약속된 도형으로 표현한 그림
3. 의사코드
자연어로 표현한 것을 연상 기호 등을 사용하여 쉽고 간단하게 문제의 처리 과정을 표현한 것
A <- 1 // A에 1을 저장한다.
B <- 1 // B에 1을 저장한다.
SUM <- A+B // A와 B를 더한 것을 SUM에 저장한다.
if(A>B)
then print A //A가 B보다 크면 A를 출력한다.
else print "감자"//아니라면 "감자"를 출력한다.
4, 프로그래밍 언어
Java, C언어, C++ 등을 이용하여 나타낸 것
public class Main {
public Main(){
int a = 1;
int b = 1;
System.out.println(a);
if(a > b){
System.out.println(b);
}
}
public static void main(String[] args) {
// write your code here
new Main();
}
}
알고리즘 자연어 의사코드 순서도
반응형
'Programming > 알고리즘' 카테고리의 다른 글
[백준 / Python] 1925번 삼각형 (2) | 2023.02.01 |
---|---|
[백준 / Python] 5615번 아파트 임대 (0) | 2023.01.22 |
[백준 / Python] 1780번 종이의 개수 (0) | 2023.01.15 |
[백준 / Python] 16953번 A → B (3) | 2023.01.11 |
[알고리즘] 알파벳 피라미드 만들기 (c언어 / 예제) (0) | 2022.02.19 |
댓글