전체 글
-
J2SE, J2EE, J2MEJAVA 2011. 10. 19. 12:00
* J2SE(Java 2 Standard Edition) 기본적인 Java의 개발/실행 환경으로 Java언어를 이용하여 어플리케이션(Application), 애플릿(Applet) 그리고 컴포넌트(Component) 등을 개발하고 실행할 수 있는 환경을 제공하는 플랫폼이다. 어떠한 Java프로그램을 개발하더라도 J2SE설치는 필수이며 SDK, RE, Plugin 기술등으로 구성된다. - J2SE의 SDK는 기존의 JDK와 동일한 기술로서 Java프로그래밍의 개발환경이다. SDK에는 RE가 포함되어 있다. - J2SE의 RE는 Java 프로그램의 수행환경이다. - J2SE의 Plugin은 Web브라우저의 동적 모듈 프로그램으로서 Java Applet프로그램의 수행환경이다. * J2EE(Java 2 Enter..
-
이차원 배열의 동적 메모리 할당C 2011. 10. 15. 12:07
1차원 배열을 동적할당하려면 malloc()를 한번만 사용하면 된다. 2차원 배열을 동적으로 할당하려면 malloc()을 여러번 사용해야한다. 동적 배열을 이용한 이차원 배열은 다음과 같다. int **array = null; //2차원 동적 배열을 잡기 위한 포인터 int m=8,width=n; // m 행 n 열 배열을 잡기 위한 변수 array = (int **) malloc( sizeof(int *)* m );// m 행을 동적 배열로 잡음 for( int i=0; i < m ; i++) array[i] = (int *) malloc( sizeof(int)* n );// m 행만큼 루프를 돌면서 각 행 마다 n 열씩 동적 배열을 잡음 동적 배열을 해제 할 때는 다음과 같이 한다. for (i=0;i
-
자주 사용하는 문자열 관련 함수 정리C 2011. 10. 14. 17:38
04년도에 보던 것인데 이번 기회에 포스팅! ** 문자열 처리 함수 ** #include 1) 문자열의 길이 측정(strlen) strlen(문자열) 2) 문자열 결합(strcat) char *ptr; ptr = strcat(문자열1, 문자열2) //문자열1에 문자열2가 붙는다. //리턴값은 문자열1의 번지값이 리턴된다. 3) 문자열 비교(strcmp) int i; i = strcmp(문자열, 문자열2) i == 0 정수 atol -> long atof -> 부동 소수점. long b; float c; int a; a = atoi("1234"); b = atol("-544334"); c = atof("43.5456); 6) 문자열 교환 함수 (str_swap) 2) 문자열 결합(strcat) char *..
-
프로그램과 프로세스의 차이OS 2011. 10. 13. 11:13
프로그램 그 자체는 프로세스가 아니다. 프로그램은 명령어 리스트를 내용으로 가진 디스크에 저장된 파일(실행파일)과 같은 수동적인 존재인 반면 프로세스는 다음에 실행할 명령어를 지정하는 프로그램 카운터와 연관된 자원의 집합을 가진 능동적인 존재이다. 실행 파일이 메모리에 적재될 때 프로그램은 프로세스가 된다. 두 프로세스들이 동일한 프로그램에 연관될 수 있지만, 이들은 두 개의 별도의 실행순서로 간주된다. 예를 들어, 여러 사용자가 메일 프로그램의 서로 다른 복사본을 실행하거나, 또는 동일 사용자가 웹 브라우저 프로그램의 여러 복사본을 호출할 수 있다. 이들 각각은 별도의 프로세스이며, 텍스트 세션이 동등하다 할지라도 자료, 힙 및 스택 섹션은 다를 수 있다. 프로세스가 실행되는 과정에서 많은 프로세스들을..
-
알고리즘의 분석 : 시간 복잡도 & 공간 복잡도자료구조 & Algorithm 2011. 10. 12. 17:58
알고리즘의 효율성을 평가하는데 있어서 그 기준은 크게 2가지로 잡는다고 한다. 하나는 시간. 그리고 공간이 바로 그것이다. 간단하게 설명하면 시간 복잡도는 얼마나 빠르게 실행되느냐에 대한 것이고 공간 복잡도는 얼마나 메모리를 많이 차지하느냐에 대한 것이다. 가장 좋은 알고리즘은 시간은 적게 걸리고 메모리의 사용은 적어야 하는거겠지. 시간과 공간은 반비례 하는 경향이 있다. 요즘은 공간보다는 시간이 우선이다! 일반적으로 알고리즘의 분석(analysis of algorithm)이라 함은 알고리즘을 이루는 명령어들의 수행횟수를 계산하여 알고리즘의 시간 복잡도를 구하는 일을 일컫는다. 여기서 시간의 복잡도란 알고리즘을 구성하는 명령어들이 몇번이나 실행됬는지 센 결과(frequency count) + 각 명령어의..
-
JAVA로 구현한 입력된 문자열을 받아서 오름차순 버블 소트 하기자료구조 & Algorithm 2011. 10. 12. 16:04
버블 소트 버블 정렬 Bubble Sort Bubble Sort는 이웃한 두 원소를 비교하면서 정렬을 해나간다. 일반적으로 앞에서부터 정렬하여 값이 큰 원소를 뒤로 보낸다고 보면 된다. 즉 맨뒤부터 정렬이 이루어지는 것이다. 그림으로 보면 이해가 쉽다. 1. 인접한 두 원소를 비교하여 자리를 교환하는 작업을 첫 번째 원소부터 마지막 원소까지 차례로 반복하여 가장 큰 원소 69를 마지막 자리로 정렬한다. 2. 같은 작업을 수행하여 나머지 원소 중에서 가장 큰 원소인 31을 끝에서 두 번째 자리로 정렬한다. 3. 같은 작업을 수행하여 나머지 원소 중에서 가장 큰 원소인 30을 끝에서 세 번째 자리로 정렬한다. 4. 같은 작업을 수행하여 나머지 원소 중에서 가장 큰 원소인 22를 끝에서 네 번째 자리로 정렬한..
-
스택 계산기자료구조 & Algorithm 2011. 10. 12. 14:01
우리 인간은 2 - 9 * (4 + 3) 형태의 infix(중위표기법)를 사용한다. 하지만 컴퓨터는 postfix(후위표기법) 형태를 사용한다. 그리고 prefix(전위표기법) 라는 것도 있다. 요 3개의 형태를 살펴보면 다음과 같다. infix 는 4 * 3 postfix 는 4 3 * prefix 는 * 4 3 스택 계산기라는 것은 사용자에게 infix 형태의 문자열 수식을 입력 받아서 postfix 형태의 수식으로 바꾼 후 계산하는 것이라고 보면 되겠다. infix 를 postfix 로 바꾸는 방법을 간단히 살펴보면 5 - ( 3 * 4 ) / 3 + 10 이라는 식이 있다. 1. 먼저 이 식에 가능한 모든 괄호를 다 취한다. ( ( 5 - ( ( 3 * 4) / 3 ) ) + 10 ) 2. 각 괄..
-
리눅스에서 gcc 컴파일 할 때 reference 에러C 2011. 10. 12. 01:37
#include #include int main() { printf("%lf",pow(3,5)); return 0; } 리눅스에서 gcc 컴파일하니까 (.text+0x175): undefined reference to `pow' 이런 오류가 뜨네 이럴땐, gcc source.c -lm -lm을 링크해야 하는 이유 : man 페이지에서 해당 함수를 위해 사용해야 할 별도의 라이브러리가 있는지 확인한다. libm.a 라이브러리를 지정해줘야 math.h 에 있는 pow() 를 쓸 수 있다. (참고) libc.a 는 gcc 에서 기본적으로 include 된다.