공부 STUDY

    SQL DDL, DML, DCL, TCL 이란?

    졸작 설계하다가 급 공부하고 쓰는 글 알아보자 ㅋ DDL (Data Definition Language) - 데이터 정의어 테이블과 같은 데이터의 구조를 정의하는 언어로써 데이터리를 생성 , 수정 삭제 하는등의 데이터의 전체의 골격을 결정 데이터베이스, 테이블등을 생성하는 역활을 합니다. => 데이터 구조와 관련된 명령어들 종류 역활 CREATE 테이터베이스, 테이블등을 생성하는 역활 ALTER 테이블을 수정 하는 역활 DROP 테이터베이스, 테이블을 삭제하는 역활 TRUNCATE 테이블을 초기화 RENAME 데이터베이스의 객체 이름을 변경 SCHEMA, DOMAIN, TABLE, VIEW, INDEX를 정의하거나 변경 또는 삭제할 때 사용하는 언어입니다. 데이터 베이스 관리자나 데이터베이스 설계자가 사..

    알고리즘: 그리디 알고리즘

    알고리즘: 그리디 알고리즘

    오늘부터 알고리즘을 차근차근 공부할 생각이다. 매주 두 가지 주제의 알고리즘을 정복해나가는 식으로 공부할 예정이다. 10/4 (수요일) ~10/ 10 (화요일) 동안 공부할 알고리즘은 그리디 알고리즘과 스택, 큐 덱(자료구조)를 이용한 알고리즘이다. 오늘은 일단 내 생일 1004이므로 그리디 알고리즘을 간략하게 공부하고 백준 한 문제를 푸는 것으로 마무리 해야겠다. 그리디 알고리즘 그리디 알고리즘은 가장 직관적인 알고리즘 설계 패러다임 중 하나이다. 이는 우리가 원하는 답을 재귀 호출과 똑같이 여러 개의 조각으로 쪼개고, 각 단계마다 답의 한 부분을 만들어 간다는 점에서 완전 탐색이나 동적 계획법 알고리즘과 다를 것이 없다. 그러나 모든 선택지를 고려해 보고 그중 전체 답이 가장 좋은 것을 찾는 두 방법..

    [JAVA] Comparable 과 Comparator 차이

    https://st-lab.tistory.com/243 자바 [JAVA] - Comparable 과 Comparator의 이해 아마 이 글을 찾아 오신 분들 대개는 Comparable과 Comparator의 차이가 무엇인지 모르거나 궁금해서 찾아오셨을 것이다. 사실 알고보면 두 개는 그렇게 어렵지 않으나 아무래도 자바를 학습하면서 객 st-lab.tistory.com 자료구조 공부하다가 comparator 과 comparable 차이점에 대한 의문이 생김 구글링을 하다가 이해가 잘 되도록 정리된 글을 발견해서 블로그에도 남긴다.

    [JAVA] 자바의 정석 연습문제 6장 객체지향프로그래밍 [6-23]

    [6-23] 다음과 같이 정의된 메서드를 작성하고 테스트하시오. 메서드명 : max 기 능: 주어진 형 배열의 값 중에서 제일 큰 값을 반환한다 . 만일 주어진 배열이 null이거나 크기가 0인 경우, -999999 를 반환한다. 반환타입 : int 매개변수 int[] arr - 최대값을 구할 배열 public class No1 { public static int max (int[] arr) { if (arr == null || arr.length == 0) { return -999999; } int max = arr[0]; for (int i = 0; i < arr.length; i++) { if (max < arr[i]) { max = arr[i]; } } return max; } public sta..

    [JAVA] 자바의 정석 연습문제 [6-6, 6-7] static 메서드와 인스턴스 메서드의 차이

    [6-7] 문제 [6-6]에서 작성한 클래스 메서드 getDistance()를 MyPoint 클래스의 인스턴스 메서드로 정의하시오. class MyPoint { int x; int y; MyPoint(int x, int y) { this.x = x; this.y = y; } double getDistance(int x1, int y1) { return Math.sqrt ((x1 - x) * (x1-x) + (y1 - y) * (y1 - y)); } } public class No1 { public static void main(String[] args) { MyPoint p = new MyPoint(1,1) } } 이전 문제의 static 메서드를 인스턴스 메서드로 변경하는 문제였다. static 메서드..

    [JAVA] 자바의 정석 연습문제 5장 배열 [5-5]

    [5-5] 다음은 1과 9 사이의 중복되지 않은 숫자로 이루어진 3자리 숫자를 만들어내는 프로그램이다. (1)~(2)에 알맞은 코드를 넣어서 프로그램을 완성하시오. package chapter2; public class No1 { public static void main(String[] args) { int[] ballArr = {1,2,3,4,5,6,7,8,9}; int[] ball3 = new int[3]; for(int i =0; i

    [JAVA] 자바의 정석 연습문제 5장 배열 [5-4]

    [5-4] 2차원 배열 arr에 담긴 모든 값의 총합과 평균을 구하는 프로그램을 완성하시오. public class No1 { public static void main(String[] args) { int[][] arr ={ {5, 5, 5, 5, 5}, {10, 10, 10, 10, 10}, {20, 20, 20, 20, 20}, {30, 30, 30, 30, 30}, }; int total = 0; float average = 0; for(int i = 0; i

    [ C ] 응용 포인터 | 포인터의 주소는? | 부분 배열의 주소 | 2차원 배열의 배열명 | 배열 포인터

    [ C ] 응용 포인터 | 포인터의 주소는? | 부분 배열의 주소 | 2차원 배열의 배열명 | 배열 포인터

    주소 값 자체를 처리할 데이터로 생각해보자. 주소를 저장한 포인터도 하나의 변수이고, 따라서 그 주소를 구할 수 있으며 또 다른 포인터에 저장하고 가리키는 것도 가능하다. 쉽게 말하자면 찾아간 주소 위치에 또 주소 값이 있다는 말이다! 이중 포인터 포인터도 메모리에 저장 공간을 갖는 하나의 변수이다. 따라서 주소 연산으로 포인터의 주소도 구할 수 있다. 예를 들어 어떤 변수를 가리키는 포인터 pi가 있다고 가정해보자. 이 포인터 pi가 할당된 메모리의 시작 위치가 200번지일 때 그 주소를 구한다고 해보자. 그러면 이 주소를 저장하는 포인터가 바로 이중 포인터다. 포인터의 주소는 이중 포인터에 저장하고, 포인터를 가리킨다. 포인터의 주소를 저장한 이중 포인터에 간접 참조 연산을 수행하면 가리키는 대상은 ..

    [ C ] 변수 사용 영역 | 지역 변수 | 전역 변수 | 정적 지역 변수 | 레지스터 변수

    [ C ] 변수 사용 영역 | 지역 변수 | 전역 변수 | 정적 지역 변수 | 레지스터 변수

    변수는 사용 범위와 메모리에 존재하는 기간에 따라 종류가 다양하다. 지역변수 Local Variable 지녁 변수는 함수 내(일정 지역)에서만 사용하는 변수이다. 지역 변수는 사용 범위가 블록 내부로 제한되므로 다른 함수에서는 사용할 수 없다. 따라서 다른 함수에서 같은 이름의 변수를 선언해도 충돌하지 않는다. 지역 변수는 이름이 같아도 선언된 함수가 다르면 각각 독립된 저장 공간을 갖는다. 즉, 두 함수에 선언된 변수 a는 이름만 같을 뿐 메모리에 별도의 저장 공간을 갖는다. 지역 변수 사용의 장점: 지역 변수의 사용 범위를 함수 단위로 제한하고 독립된 저장 공간을 확보하면 두 가지 장점이 있다. 1) 메모리를 효율적으로 사용한다. 2) 디버깅에 유리하다. ** 함수의 매개 변수 역시 지역변수이다. 함..

    [ C ] 주소와 포인터 차이? | 포인터의 크기 | 포인터 자료형 | 포인터 기능

    [ C ] 주소와 포인터 차이? | 포인터의 크기 | 포인터 자료형 | 포인터 기능

    포인터는 주소를 저장하는 일정한 크기의 메모리 공간이다. 따라서 언제든지 다른 주소를 저장하거나 포인터끼리 대입이 가능하다. 그러나 일반 변수와는 달리 대입 연산에대한 기준이 까다롭다. 주소와 포인터의 차이는 무엇일까? 주소: 변수에 할당된 메모리의 시작 주소 값 포인터: 그 값을 저장하는 또 다른 메모리 공간 따라서 특정 변수의 주소 값은 바뀌지 않지만 포인터는 다른 주소를 대입하여 그 값을 바꿀 수 있다. 예를들어, 변수 a, b 가 메모리에 할당된 상태라고 해보자. int a, b; int *p; p = &a; p= &b; 여기서 변수 a 의 주소는 100이고, 변수 b 의 주소는 200으로 실행중에는 그 값이 바뀌지 않는다. 반면, 포인터 p는 a 와 b 중 어떤 주소를 대입하냐에 따라 가리키는 ..