본문 바로가기
자료구조

알고리즘의 이해

by 멋진 개구리 2020. 5. 28.
반응형

알고리즘은 주어진 문제를 해결하는 방법을 추상화하여 일련의 단계적 절차를 논리적으로 기술해 놓은 명세서이다. '알고리즘'이라는 단어를 떠올리면 막연히 복잡하고 어렵다고 생각하기 쉽다. 하지만 그만큼 어려운것은 아니다. 간단히 예를 들어보며 알고리즘의 개념을 이해해보자.

1)케익만드는 레시피
요리재료: 달걀2알, 설탕 3큰술, 레몬즙 1큰술, 바닐라 에센스 1큰술, 딸기시럽, 딸기1개, 플레인요거트 

2)요리법
(1) 달걀 2알을 푼다, 볼에 물 설탕 세차레로 나누어 넣으면서 크림상태가 되도록 거품기로 젓는다.
(2) (1)에 레몬즙과 바닐라 에센스를 넣고 살짝 저은다음 180도로 예열된 오븐에 넣고 2분정도 굽는다.
(3)딸기를 얇게 자르고 냄비에 넣은 다음 설탕1 1/2을넣고 약한 불로 끓인다. 눌러붙지않게 계속 젓고 거품이 생기면 걷어낸다.되직해지면 레몬즙을 넣고 차갑게 식힌다.
(4)다음 플레인요거트와 딸기를 얹는다.

위 레시피에서 [요리재료]는 컴퓨터에서 '자료'가 되고, 요리 재료를 다루는 방법은 '자료에 대한 연산'이 되며 재료를 다루고 케이크를 만드는 과정을 기술한[요리법]은 '알고리즘'이 된다.

효율적이고 정확하게 문제를 해결하려면 자료를 정의하고, 그 자료를 처리하기에 적당한 알고리즘을 작성해야한다. 효과적인 알고리즘이 되려면 다음 조건을 만족해야한다
1) 입력: 알고리즘을 수행하는 데 필요한 자료가 외부에서 입력되어야 한다. 
2)출력: 알고리즘을 수행하고 나면 결과를 하나 이상 출력해야 한다.
3)명확성: 수행할 작업의 내용과 순서를 나타내는 알고리즘의 명령어는 명확하게 명세되어야 한다.
4)유한성: 알고리즘을 모두 수행하고 나면 만드시 종료되어야한다.
5)효과성: 알고리즘의 모든 명령어는 기본적이며 실행할 수 있어야 한다.

class Max3{
	public static void main(String[] args){
    	Sanner stdIn = new Scanner(System.in);
        
        System.out.println("세정수의 최댓값을 구합니다");
        System.out.print("a의 값"); int a = stdIn.nextInt();
        System.out.print("b의 값"); int b = stdIn.nextInt();
        System.out.print("c의 값"); int c = stdIn.nextInt();
        
        int max = a;
        if(b> max)
        	max=b;
        if(c>max)
        	max=c;
            
        System.out.println("최댓값:"+max+);    
        }
}        

최댓값 구하는 알고리즘

반응형

'자료구조' 카테고리의 다른 글

List<Map<String,Object>>  (0) 2021.01.15
배열  (0) 2020.05.29
자료구조의 이해  (1) 2020.05.27

댓글