728x90
반응형
01-1 알고리즘이란
- 세 값의 최대값
- 키보드로 숫자와 문자열 입력하기 ( Scanner sc = new Scanner(System.in); )
- System.in은 키보드와 연결된 표준입력 스트림.
- stdln.nextInt()가 호출되면 키보드로 입력한 정숫값을 얻을 수 있다. 이는 입력 스트림에서 문자나 숫자를 꺼내는 장치 역할을 한다.
- 자료형에따라 호출하는 메서드를 구분히야한다. ( nextBoolean() / nextByte() / nextInt() / next()->문자열, 줄바꿈 문자로 구분 / nextLine()문자열 1줄
- 알고리즘의 정의 : 문제를 해결하기위한것으로, 명확하게 정의되고 순서가 있는 유한 개의 규칙으로 이루어진 집합
public class d0_01 { static int max3(int a, int b, int c) { int max=a; if(b>max) max = b; if(c>max) max=c; return max; } static int max4(int a, int b, int c, int d) { int max=a; if(b>max) max = b; if(c>max) max=c; if(d>max) max=d; return max; } static int min3(int a, int b, int c) { int min=a; if(b<min) min=b; if(c<min) min=c; return min; } static int med3(int a, int b, int c) { if(a>=b) { if (b>=c) { return b; } else if(a<=c) { return a; } else { return c; } } else if (a>c) return a; else if (b>c) return c; else return b; } public static void main(String[] args) { System.out.println("max(3,2,1) = " + max3(3,2,1)); System.out.println("med(3,5,7) = " + med3(3,5,7)); //중앙값을 구하는 과정은 퀵정렬에서도 이용 } }
- 조건 판단과 분기
- +, _, > 등과 같은 연산기호를 연산자라고하고, 그 대상이되는것을 피 연산자라고한다.
- 연산자는 피 연산자의 수에 따라 다음과 같이 3종류로 분류된다.
- 단항연산자 : 피연산자 1개 (a++)
- 2항연산자 : 피연산자 2개 ( a<b )
- 3항연산자 : 피연산자 3개 (a?b:c)
- 특히 조건연산자 : 는 자바에서 유일한 3항 연산자다. a?b:c는 a가 true면 b를 반환하고, false면 c를 반환한다.
a = (x>y) ? x : y;
System.out.println((c==0) ? "c는 0" : "c는 0이아님");
- 순서도의 기호
01-2 반복
- 1부터 n까지 정수 합 구하기
- while문 반복 : 어떤 조건이 성립하는동안 반복하여 실행함. 이때 증감식으로 빠져나올것도 생각해야함.
while(제어식) 명령문 - for문 반복 : 하나의 변수를 사용하는 반복문은 for문이 낫다.
for(초기화 부분; 제어식; 업데이트 부분) 명령문
- 양수만 입력하기
- do문은 일단 루프 본문을 한번 실행한 다음 계속 반복할것인지를 판단하는 사후 판단 방법이다. while문과 마찬가지로 ()안의 제어식을 평가한 값이 0이아니면 루프본문의 명령문이 반복된다.
do문 while(제어식);
do { n = sc.nextInt(); // n이 0보다 클때까지 반복한다. } while (n<=0);
- 구조적 프로그래밍
- 드모르간 법칙
x&&y 와 !(!x || !y)는 같다.
x||y 와 !(!x && !y)는 같다.
- 다중 루프
- 반복안에서 반복을 수행하는 다중루프.
- 곱셈표(구구단)
for(int i =1; i<=9; i++) { for(int j=1; j<=9; j++) { System.out.printf("%3d",i*j); } }
- 직각 이등변 삼각형 출력(별찍기)
for(int i=1; i<=n; i++) { for(int j=1; j<=i; j++) { System.out.print('*'); } System.out.println(); }
교재 | 두잇 자료구조와 함께 배우는 알고리즘 입문(자바편) | 스터디 기간 | 21.11.22~11.27 |
728x90
반응형
'알고리즘 > 개념' 카테고리의 다른 글
[Queue] 큐 와 덱 사용법과 예제를 알아보자. (0) | 2022.01.15 |
---|---|
[stack] 스택의 기본 개념과 사용법을 알아보자. (0) | 2022.01.12 |
[알고리즘] 02 기본 자료구조 (0) | 2021.11.26 |
댓글