알고리즘이란?
- 문제를 해결하기 위한 것으로, 명확하게 정의되고 순서가 있는 유한 개의 규칙으로 이루어진 집합
- 가령 최댓값을 구하라는 문제가 주어졌다고 가정해보자.
- 우리는 문제를 해결할 일련의 로직, 즉 논리적인 흐름을 작성하고 그에 맞는 입력을 받은 후 출력을 행할 것이다.
- 그 일련의 로직은 컴퓨터가 이해하기 위해 명확하게 작성되어야하고 흐름을 가지기 위해 순서가 있어야 하며, 사람이 작성하기에 유한성을 띌 것이다.
- 이로써 최댓값을 구하라는 문제를 해결하였고 이를 알고리즘이라고 한다.
키보드로 숫자 입력하기
import java.util.Scanner;
class A{
public static void main(string[] args) {
Scanner stdIn = new Scanner(System.in);
StdIn.nextInt();
}
}
- java.util 패키지에 있는 Scanner 클래스를 프로그램에 포합시킨다.
- Scanner 클래스는 main 메서드 맨 앞에 작성한다. System.in은 키보드와 연결된 표준 입력 스트림이다.
- stdIn.nextInt()가 호출되면 키보드로 입력한 정숫값을 얻을 수 있다.
입력 메서드 종류
- 호출하는 메서드는 자료형에 따라 구분해야한다.
매개변수
- 메서드를 정의할 때 메서드에 전달되는 값을 저장하기 위해 변수를 선언하는데, 이를 매개변수(parameter) 또는 형식 매개변수(formal parameter)라 한다
- 메서드를 호출할 때 사용하는 매개변수의 값을 실인수(actual argument)라고 한다.
구조적 프로그래밍
- 하나의 입구와 하나의 출구를 가진 구성요소 만을 계층적으로 배치하여 프로그램을 구성하는 방법이다.
- 순차, 선택, 반복이라는 3종류의 제어 흐름을 사용한다.
- 순차 : 구문 순서에 따라 순차적으로 실행되는 것이다.
- 선택 : 프로그램 상태에 따라서 여러 구문중 하나를 실행하는 것이다. if~else if~else, switch 등이 해당된다.
- 반복 : 프로그램이 특정 상태에 도달할 때까지 구문을 반복하여 수행하거나, 집합체의 각각의 원소들에 대해 어떤 구문을 반복 수행하는 것이다. while, for, do while 등이 해당된다.
드모르간 법칙
- 각 조건을 부정하고 논리곱을 논리 합으로, 논리합을 논리곱으로 바꾸고 다시 전체를 부정하면 원래의 조건과 같다.
- x && y와 !(!x || !y)는 같다.
- x || y와 !(!x && !y)는 같다.