
Do it 자료구조와 함께 배우는 알고리즘 입문 자바편을 읽고 정리한 내용입니다.
문제를 해결하기 위한 것으로, 명확하게 정의되고 순서가 있는 유한 개의 규칙으로 이루어진 집합
알고리즘이 프로그램의 기반으로 제대로 사용되기 위해서는 다음 조건을 만족해야 한다.
- 입력과 출력 (Input/Output)
- 정확성 (Correctness)
- 유한성 (Finiteness)
- 명확성 (Definiteness)
- 유효성 (Effectiveness)
처리하고자 하는 문제의 수서와 상호간의 관계를 기호를 사용하여 표현한 그림
어떤 조건이 성립하는 동안 반복해서 수행하는 것
while(제어식) 명령문for(초기화부분; 제어식; 업데이트부분) 명령문do문 while(제어식); 논리 연산의 식 전체 평가의 결과가 왼쪽 피연산자의 평가 결과만으로도 정확하다면 오른쪽 피연산자의 평가를 수행하지 않는 것
|| 왼쪽 피연산자의 평가 결과가 true면 단축평가&& 왼쪽 피연사자의 평가 결과가 false면 단축평가각 조건을 부정하고 논리곱을 논리합으로, 논리합을 논리곱으로 바꾸고 다시 전체를 부정하면 원래의 조건과 같다는 법칙
(x && y) == !(!x || !y);
(X || y) == !(!x && !y);
반복문 안에 다시 반복
// 곱셈표
public class Multi99Tabel {
public static void main(String[] args) {
for(int i=1; i<=9; i++) {
for(int j=1; j<=9; j++) {
System.out.printf("%3d", i*j);
}
System.out.println();
}
}
}
위의 코드는 다음과 같이 처리된다.
i가 1일 때 : j를 1 => 9로 증가시키면서 1 * j를 출력한다. 그리고 줄을 바꾼다.
i가 2일 때 : j를 1 => 9로 증가시키면서 2 * j를 출력한다. 그리고 줄을 바꾼다.
i가 3일 때 : j를 1 => 9로 증가시키면서 3 * j를 출력한다. 그리고 줄을 바꾼다.
i가 4일 때 : j를 1 => 9로 증가시키면서 4 * j를 출력한다. 그리고 줄을 바꾼다.
.
.
이를 그림으로 나타내면 다음과 같다.

// 직각 이등변 삼각형
public class TriangleLB {
public static void main(String[] args){
Scanner scan = new Sacnner(System.in);
int n;
System.out.println("왼쪽 아래가 직각인 이등변 삼각형을 출력합니다.");
do {
System.out.print("몇 단 삼각형입니까? : ");
n = scan.nextInt();
}while ( n <= 0);
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= i; j++)
System.out.print('*');
System.out.println();
}
}
}
위 코드는 다음과 같이 처리된다
i가 1 일 때 : j를 1 => 1로 증가시키면서 *를 출력한다. 그리고 줄을 바꾼다.
i가 2 일 때 : j를 1 => 2로 증가시키면서 *를 출력한다. 그리고 줄을 바꾼다.
i가 3 일 때 : j를 1 => 3로 증가시키면서 *를 출력한다. 그리고 줄을 바꾼다.
i가 4 일 때 : j를 1 => 4로 증가시키면서 *를 출력한다. 그리고 줄을 바꾼다.
.
.
이를 그림으로 나타내면 다음과 같다.
