알고리즘이란 무엇일까요?
알고리즘이란 문제를 해결하기위한 여러 동작들을 말합니다.
즉, 조건을 만족하는 해결 방안이 될수 있겠죠?
입력 , 출력, 명확성, 유한성, 효율성 의 조건을 만족해야해요.
입력, 외부에서 제공되는 자료가 0개이상 존재 해야합니다.
출력. 모든 입력에 하나의 출력이 나와야 합니다.
명확성, 수행한 과정은 면확하고 모호하지 않은 명령어로 구성되어야 합니다.
유한성, 유한 번의 명령어를 수행 후에 종료해야합니다.
효율성, 모든 과정은 명백하게 실행(검증)이 가능 해야합니다.
우선 짧은 예제를 통해 알아볼께요.
3개의 정수값 가운데 '최댓값'을 구하는 프로그램입니다.
변수 a, b, c 에 들어가는 값은 키보드에서 입력한 값이며,
그 3개의 값 증 퇴댓값을 변수 max로 찾을 수 있습니다.
여기서 Scanner 함수에대해 잠깐 알아보겠습니다.
키보드의 입력을 받기 위해서 Scanner함수를 사용하였습니다.
Scanner함수는 키보드를통해 입력 할 수 있게 해주는 함수입니다.
3번 라인의 import java.util.Scanner; 는 프로그램에서 scanner함수를 쓰겠다고 선언 해 주는 거에요
쉬프트+컨트롤+o를 해주면 자동으로 import를 해줘요 유용하답니다 :)
Scanner In = new Scanner(System.in); 는 scanner 변수 In을 선언해 주는거에요.
그럼 프로그램을 실행 시켜 10,20,30 순으로 입력 해 보겠습니다.
어떤 값이 나올까요?
이렇게 프로그램 내부에서 최댓값을 구합니다.
int max = a;
if( b > max) max = b;
if( c > max) max = c;
a,b,c의 최댓값을 구하여 max에 대입하는 소스입니다.
a값을 max에 넣고
b의 값이 max보다 크면 max에 b값을 넣고
c값이 크면 c값을 max에 넣습니다.
모든 프로그램을 절차지향 입니다.
그런데 입력에 따라 실행 구조가 달라져요 왜 그럴까요?
그것은 if문 떄문입니다.
if문의 결과에따라 프로그램의 실행 흐름이 변경되는거죠 이것을 선택구조라고 합니다.
최솟값도 구해보세요 :)