1. 알고리즘
1) 알고리즘이란?
1. 문제를 해결하기 위한 것
2. 명확하게 정의되고 순서가 있는 유한 개의 규칙으로 이루어진 집합
2) 순차적 구조와 선택 구조
import java.util.Scanner;
public class Main {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.print("a의 값: "); int a = sc.nextInt();
System.out.print("b의 값: "); int b = sc.nextInt();
System.out.print("c의 값: "); int c = sc.nextInt();
int max = a;
if(b > max) max = b;
if(c > max) max = c;
System.out.println("최대값 : " + max);
}
}
- 세 값을 순서대로 입력받아 최대값을 구하는 프로그램
- 순차적(concatenation) 구조 : 순차적으로 실행되는 구조
- 선택(selection) 구조 : 식의 평가 결과에 따라 프로그램의 실행 흐름을 변경 (if문 등)
3) 순서도(flowchart)
- 프로그램의 순서를 이해하기 쉽게 그림으로 나타낸 것
(1) 데이터(data) : 데이터의 입력과 출력을 나타냄
(2) 처리(process) : 여러 종류의 처리 기능을 수행 (정보의 값, 자료형, 위치를 바꾸도록 정의한 연산이나 연산집합의 실행 또는 연속적인 몇 가지 흐름 가운데 하나의 방향을 결정하는 연산집합이나 연산군의 실행)
(3) 미리 정의한 처리(predefined process) : 서브 루틴 및 모듈 등 다른 곳에서 이미 정의한 하나 이상의 연산 또는 명령어들로 이루어진 처리
(4) 판단(decision) : 하나의 입구와 하나 이상을 선택할 수 있는 출구가 있고, 기호에서 정의한 조건을 평가하여 하나의 출구를 선택함
(5) 루프 범위(loop limit) : 루프의 시작 기호(반복 전에 판단하는 경우) 또는 종료 기호(반복 후에 판단하는 경우) 안에 초깃값(초기화), 증갓값, 종룟값(종료 조건)을 표기함
(6) 선(line) : 제어의 흐름을 나타냄, 흐름의 방향을 분명히 나타내고자 할 때 화살표를 붙임
(7) 단말(terminator) : 외부 환경으로 나가거나 외부환경에서 들어오는 것
4) 조건 판단과 분기
import java.util.Scanner;
public class Main {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.println("정수를 입력하세요: ");
int n = sc.nextInt();
if(n > 0)
System.out.println("양수입니다.");
else if(n < 0)
System.out.println("음수입니다.");
else
System.out.println("0입니다.");
}
}
- 입력한 정숫값의 부호(양수/음수/0)를 판단하여 출력하는 프로그램
- 실행되는 부분은 3가지 중 한 가지뿐임
- 두 가지가 동시에 실행되는 경우 X
- 하나도 실행되지 않는 경우 X
참고 - Do it! 자료구조와 함께 배우는 알고리즘 입문 : 자바 편 (저자 : 보요 시바타, 출판 : 이지스 퍼블리싱)
'공부 > 알고리즘' 카테고리의 다른 글
[알고리즘-04] 정렬(Sorting) - 퀵 정렬, 병합 정렬, 힙 정렬 (0) | 2021.05.22 |
---|---|
[알고리즘+] 최대공약수, 최소공배수 (0) | 2021.04.27 |
[알고리즘-04] 정렬(Sorting) - 버블 정렬, 단순 선택 정렬, 단순 삽입 정렬 (0) | 2021.04.22 |
[알고리즘-03] 재귀 알고리즘 (0) | 2021.04.20 |
[알고리즘-02] 검색 - 선형 검색, 이진 검색 (0) | 2021.04.18 |