자바로 배우는 기초 알고리즘 (기사 실기)
닫기
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
해당 자료는 10페이지 까지만 미리보기를 제공합니다.
10페이지 이후부터 다운로드 후 확인할 수 있습니다.

소개글

자바로 배우는 기초 알고리즘 (기사 실기)에 대한 보고서 자료입니다.

목차

1.1 자바의 소개 3
1.1.1 자바의 정의 3
1.1.2 자바언어의 특징 3

1.2. 자바 기초 문법 8
1.2.1 Comment, Semicolons, Blocks, WhiteSpace 8
1.2.2 Identifiers(식별자) 8
1.2.3 Java Keyword 8
1.2.4 Basic Java Type 9
1.2.5 객체(Object)의 이해 10
1.2.4 Default Initialization 10
1.2.5 클래스의 생성 및 객체의 사용 예제 11
1.2.6 변수 및 변수 영역 11
1.2.7 변수의 초기화 12
1.2.8 연산자 13
1.2.9 형 변환(Casting) 17
1.2.10 흐름제어 17


2.1 알고리즘의 정의 21
2.1.1 알고리즘의 정의 21
2.1.2 알고리즘의 조건 21

2.2 알고리즘의 설계 및 검증 21
2.2.1 알고리즘 설계단계 21
2.2.2 알고리즘의 분석 기준 21

2.3 순서도 (Flow Chart) 작성법 22
2.3.1 순서도란? 22
2.3.2 순서도의 역할 22
2.3.3 순서도 작성으로 얻을수 있는 효과 23
2.3.4 순서도의 종류 23
2.3.5 순서도 작성 방법 23
2.3.6 순서도의 기호와 사용 예 24

3.1 기본 설계 28
3.1.1 1 부터 100까지의 합계를 구하라 28
3.1.2 1단부터 9단까지의 구구단을 출력 30

3.2 순열 알고리즘 32
3.2.1 1+2+4+7+11+16+22+...의 순서로 나열되는 순열의 20번째 항까지의 합계 32
3.2.2 1+1+2+3+5+8+13+...의 순서로 나열되는 피보나치 수열의 20번째 항까지의 합계 34
3.2.3 1-2+3-4+5-6+....+99-100 합계 36
3.2.4 의 합계 38

3.3 소수[素數, prime number] 40
3.3.1 임의의 정수를 입력하여 소수를 판별하는 프로그램 작성 40
3.3.2 배열A(99)에는 2~100사이의 소수의 개수 구하기 43
3.3.3 임의의 정수를 입력받아 그 안에 포함된 소수의 합 46
3.4 약수[約數, divisor] 49
3.3.1 정수를 입력받아 약수를 구해 출력 49
3.3.2 최대 공약수[最大公約數, greatest common measure] / 최소공배수 구하기 52

3.5 기타 예제 55
3.5.1 10진수를 입력받아 2진수로 변환하는 순서도를 작성하시오. 55
3.5.2 10개의 숫자 중 가장 큰값을 찾는 방법 57
3.5.3 1부터 100까지의 수중에서 5의 배수를 구해서 합을 구하는 방법 59
3.5.4 입력받은 수중 7에 가장 가까운 숫자 구하기 61
3.5.5 10개의 수치자료를 입력받아서 오름차순으로 정렬 63
3.5.6 키보드로 입력받은 값이 DATA 배열 중 몇 번째에 찾는 방법 66
3.5.7 다음과 같은 2차원 배열 생성 68

본문내용

Data);
initData[inputCount] = intInData;
inputCount ++;
if(inputCount >= maxCount){
break;
}
}
}catch(Exception e){
e.printStackTrace();
}
int temp;
for(int i=0 ; i < maxCount ; i++){
for(int j=i; j < maxCount ; j++){
if( initData[i]> initData[j]){
temp = initData[i];
initData[i] = initData[j];
initData[j] = temp;
}
System.out.println("[i="+i+",j="+j+"] ");
for(int k=0; k < maxCount ; k++){
System.out.print(initData[k]+" ");
}
System.out.println("");
}
}
}
}
DATA(10)은 initData라는 변수로 사용하고, M은 inputCount 로 저장한다. 임시변수는 temp로 사용
3.5.6 키보드로 입력받은 값이 DATA 배열 중 몇 번째에 찾는 방법
분석 : 2분 검색
10개의 숫자 중 하나의 숫자가 몇 번째 있는지를 검색하는 방법을 도표로 나타내면 다음과 같다.
10개의 숫자가 순차적으로 정렬되어 있을 때 44라는 숫자가 몇 번째에 있는 지를 알기 위해서 중간 값을 비교하여 그값의 크기를 비교하면서 검색해 나간다.
순서도 작성
DATA(10)은 입력받은 10개의 숫자가 저장될 배열
J는 검색할 값
L : 검색 시작 위치 L=1
H 는 마지막 위치 H= 10
M 는 중간위치 M = (INT)((L+H)/2)로 계산한다.
프로그램 작성
TwoSearch.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class TwoSearch {
public static void main(String[] args) {
int[] data = {8,15,35,55,60,61,70,80,92,99};
BufferedReader in =
new BufferedReader(new InputStreamReader(System.in));
String strInData;
int inputData=0;
System.out.println(" 숫자 입력받기 .. ");
try{
System.out.print("숫자를 입력하시오. ");
strInData = in.readLine(); // 키보드 입력 읽기 (줄 단위)
inputData = Integer.parseInt(strInData);
}catch(Exception e){
e.printStackTrace();
}
int lowPos = 1;
int highPos = 10;
int midPos =5;
while(true ){
if(lowPos <= highPos){
midPos = (int)((lowPos+highPos)/2);
if(inputData != data[midPos]){
if( inputData < data[midPos]){
highPos = midPos-1;
}else{
lowPos = lowPos +1;
}
}else{
System.out.println("INPUT -"+ inputData +" POS-"+midPos);
break;
}
}else{
System.out.println("INPUT -"+ inputData +" NOT FOUND");
break;
}
}
}
}
3.5.7 다음과 같은 2차원 배열 생성
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
분석 : 다차원 배열
위의 다차원 배열을 표시하면 다음과 같이 표시될 수 있다. (보통 배열은 1이 최초인덱스이지만, 실제 프로그래밍에서는 0이 최초 인덱스이다.)
1 ( 1,1 )
2 ( 2,1 )
3 ( 2,2 )
4 ( 3,1 )
5 ( 3,2 )
6 ( 3,3 )
7 ( 4,1 )
8 ( 4,2 )
9 ( 4,3 )
10 ( 4,4 )
11 ( 5,1 )
12 ( 5,2 )
13 ( 5,3 )
14 ( 5,4 )
15 ( 5,5 )
아래처럼 상세하게 표현할 수 있다.
(1,1)
(2,1)
(2,2)
(3,1)
(3,2)
(3,3)
(4,1)
(4,2)
(4,3)
(4,4)
(5,1)
(5,2
(5,3
(5,4
(5,5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
이를 순서도로 표현하면 다음과 같다.
순서도 작성
A(5,5)는 2차원 배열
K는 배열에 들어가는 숫자로 1씩 순차적으로 증가한다.
I는 세로에 대한 위치 즉 행 위치이고, J는 가로에 대한 위치 즉, 열 위치이다.
프로그램 작성
LeftTriArray.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public class LeftTriArray {
public static void main(String[] args) {
int A[][] = new int[5][5];
int value = 0;
for(int i=0; i< 5 ;i++){
A[i] = new int[5];
for(int j=0; j< i+1; j++){
System.out.println(i+":"+j);
A[i][j] = ++value;
}
}
for(int i=0; i < A.length ; i++){
for(int j=0; j < A[i].length ; j++){
System.out.print(A[i][j]+"");
}
System.out.println("");
}
}
}
자바에서의 2차원 배열은 int A[][] = new int[5][5];처럼 선언한다. 그리고 자바에서의 배열은 객체로 인식되기 때문에 INT에 대한 배열이라도 int가 원시형데이터이지만, 배열은 객체 타입이 된다.

키워드

추천자료

  • 가격3,000
  • 페이지수57페이지
  • 등록일2006.10.27
  • 저작시기2006.10
  • 파일형식한글(hwp)
  • 자료번호#368761
본 자료는 최근 2주간 다운받은 회원이 없습니다.
청소해
다운로드 장바구니