a battle with myself

알고리즘(Algorithm) 기초(1) 본문

정보처리 기초

알고리즘(Algorithm) 기초(1)

열공_중 2015. 11. 9. 10:47

1. 알고리즘(Algorithm)

컴퓨터를 이용한 문제 해결 4단계

우리가 컴퓨터를 사용하는 목적은 주어진 문제를 사람의 힘으로 해결하지 않고 컴퓨터를 이용하여 해결하자는것이다. 이러한 "컴퓨터를 이용한문제해결" 은 다음과 같은 4단계를 거친다.

-1단계 : 주어진 문제를 정확하게 이해하고 이를 분석한다.

-2단계 : 분석한 문제를 해결하기 위한 가장좋은 방안을 구성한다. 이 결과물이 알고리즘(Algorithm)이다.

-3단계 : 알고리즘을 컴퓨터가 알아들을 수 있는 방법으로 표현하여 컴퓨터가 이를수행 하도

록 지시한다. 이러한 작업이 프로그래밍(Programming) 또는 코딩(Coding)이다. 프로

그래밍을 잘하려면 C,JAVA 등 과 같은 프로그래밍 언어를 알아야한다.

 

-4단계 : 작성한 프로그램을 컴퓨터 상에서 실행하여 출력을 얻는다. 만일 이때 얻은 출력이

처음 기대한 바와 다르면 프로그램이 잘못 작성된 경우이므로 3단계 프로그래밍 과정을 다시

거친다. 이러한 검증 과정이 디버깅(Debugging)이다.

 

1단계

주어진 문제 이해와 분석  

 

 2단계

문제 해결 방안 구상 

 

 3단계

컴퓨터 프로그램 작성

 4단계

프로그램 실행 및 검증

알고리즘의성능은 시간과 공간을 기준으로 측정한다. 알고리즘을 실행할때 걸리는 시간이 짧고, 데이터 처리에 필요로 하는 저장 공간이 작을수록 성능이 좋은 알고리즘 이다.

 

 

 

 

 

2. 변수와 배열

변수의 개념

변수는 값을 보관하여 처리하기 위한 장소이다.

모든 변수는 컴퓨터 상에서 메모리 공간이 할당된다.

변수는 다양한 종류의 값을 보관할 수 있다. (자연수, 실수, 문자,boolean)

어떤 변수를 사용하려면 준비기호 안에 미리 선언하여 일리는 것이 좋지만,

선언하지 않아도 변수라는 사실을 명확하게 알 수 있다면 선언을 생략할 수 있다.

 

배열 변수

배열 변수는 같은 종류의 값들을 메모리 공간 안에 연속적으로 보관하여 처리하기 위한 장소를 말한다.

학생100명의 영어 점수를 보관하려면 별도의 변수 100개가 필요하지만, 배열 변수를 사용하면 1개가 필요하다. 다만 이 배열 변수는 같은 종류의 값을 보관하는 원소 100개 를 갖는다. 

배열 변수의 선언 : ENG(100) -> 1차원 배열 변수

- ENG : 1차원 배열 변수의 이름

- 100  : 배열 변수의 원소 개수

 

학생 100명의 영어 점수와 수학 점수를 보관하려면 별도의 변수 200개가 필요하지만,

배열 변수를 사용하면 1개로도 충분하다. 다만 이 배열 변수는 같은 종류의 값을 보관하는 원소로 100개씩 총 2세트가 필요하다(영,수)

배열 변수의 선언 : SCORE(2,100) -> 2차원 배열 변수

- SCORE: 2차원 배열 변수의 이름(그냥 변수명)

-2 : 세트 수 ,  - 100  : 배열 변수의 원소 개수

-따라서 SCORE 배열 변수의 총 원소 개수는 200개

 

1차원 배열 변수

A[5] : 배열 변수 A의 원소에는 A(1),A(2),A(3),A(4),A(5) 모두 5개가 있다.

배열 변수 A의 K 번째 원소를 나타날때는 A(K) 라고 표현한다.

메모리 공간상의 구조

A(1)

 A(2)

 A(3)

 A(4)

 A(5)

 

 

2차원 배열 변수

B[2][3] : 배열 변수 B의 원소에는 B(1,1),B(1,2),B(1,3),B(2,1),B(2,2),B(2,3) 6개가 있다.

K번째 행의 L번째 열에 위치한 원소를 가리킬때는 B(K,L) 이라고 표현한다.

배열변수 B의 메모리 공간 구조

 1행

2행 

1열 

2열 

3열 

1열 

2열 

3열 

 B(1,1)

 B(1,2)

 B(1,3)

 B(2,1)

 B(2,2)

 B(2,3)

또 는 

 

 1열

2열 

3열 

 1행

 B(1,1)

 B(1,2)

 B(1,2)

 2행

 B(2,1)

 B(2,1)

 B(2,3)

 

 

 

 

'정보처리 기초' 카테고리의 다른 글

DataBase 개념  (0) 2015.11.09
알고리즘(Algorithm) 기초(2)  (0) 2015.11.09