본문 바로가기

머어어엉

(104)
DB 데이타 모델링 데이터의 세계 현실 세계에는 무수히 많은 개체(entity)라고 하는 객체들이 존재하고 우리들은 이들의 공통적인 특성을 기준으로 그룹 지어 이름을 붙여 식별하고 있다. 또한 계속적으로 변하고 있는 무형의 현상들을 통틀어서 원시 사실(primitive facts)또는 값(value)라고 한다. 개념적 구조를 구성한는 빌딩 블록은 현실 세계의 개체들을 추상화시킨 개체 타입(entity type)이다. 컴퓨터가 이해할 수 있게 논리적 구조로 변환 하는 과정을 데이타 모델링(data modeling)이라 한다. 데이터 모델의 개념 : 개념적 데이터 모델(개체 타입), 논리적 데이타 모델(레코드 타입) p.212~213 관계 타입 관계 타입의 유형 1. 일대일(1 : 1) : 신랑과 신부 ( 결혼 관계 ) 신랑은..
DB 종속성과 정규화 데이타의 논리적 표현 : 데이타베이스 설계에서 중요한 사항은 무엇보다도 현실 세계를 가장 정확하게 표현할 수 있는 데이타의 논리적 구조를 결정하는 것이다. 이것이 곧 릴에이션스키마의 설계가 된다. 삭제이상 : 한 투플을 삭제함으로써 유지해야 될 정보까지도 삭제되는 연쇄 삭제 현상(triggered deleting)이 일어나게 되어 정보 손실(loss of information)이 발생하게 되는데 이러한 현상을 삭제 이상(deletion anomaly)이라고 한다. 삽입이상 : 어떤 데이터를 삽입하려고 할 때 불필요하고 원하지 않ㄴ느 데이타도 함께 삽입해야만 되고 그렇지 않으면 삽입이 되지 않는 현상을 삽입 이상(insertion anomaly)이라 한다. 갱신이상 : 중복된 투플들 중에서 일부 투플의 어..
백준 자바 알고리즘 [4344 : 평균은 넘겠지] Scanner sc = new Scanner(System.in); int test = sc.nextInt(); //케이스 수 int num = sc.nextInt(); //학생 수 int[] s = new int[num]; double avg = 0; //평균 for (int i = 0; i avg){ avgS++; } } System.out.printf("%.3f",..
백준 자바 알고리즘 [8958 : OX퀴즈] Scanner sc = new Scanner(System.in); int num = sc.nextInt(); String[] str = new String[num]; for (int i = 0; i < num; i++) { int count = 0, sum = 0; str[i] = sc.next(); for (int j =0; j < str[i].length(); j++) { if (str[i].charAt(j) == 'o') sum += ++count; else count = 0; } System.out.println(sum); } sc.close(); string배열을 이용해서 해결. str[0]에 'oooxxooxx' 이렇게 들어가 있다면 charAt()으로 각 인덱스의 값을 구할 수 있다. 그 인..
백준 자바 알고리즘 [나머지] Scanner sc = new Scanner(System.in); int[] number = new int[10]; for (int i = 0; i < 9; i++) { number[i] = sc.nextInt(); number[i]%=42; } sc.close(); IntStream stream = Arrays.stream(number); System.out.println(stream.distinct().count()); int배열 생성. for문으로 10개의 임의의 수를 생성해서 배열에 넣고 넣은 배열을 42로 나눠서 다시 배열에 넣어준다. 스트림을 이용해서 distict으로 중복을 제거하고 count로 숫자를 세면됨. 스트림을 이용하여 간단하게 해결할 수 있다. 다른 정답 코드들. https://i..
백준 자바 알고리즘 [숫자의 개수] Scanner sc = new Scanner(System.in); int A = sc.nextInt(); int B = sc.nextInt(); int C = sc.nextInt(); sc.close(); int[] counts = new int[10]; int number = A * B * C; while (number > 0) { counts[number % 10]++; number /= 10; } for (int i = 0; i < counts.length; ++i) { System.out.println(counts[i]); } counts 배열은 {0,0,0,0...}; 이겠지 while문을 사용해서 abc의 곱이 0보다 클때까지 돌려주고 counts[나머지값]이 6이면 counts[6]이 되니까..
백준 자바 알고리즘 [최댓값] Scanner sc = new Scanner(System.in); int []a = new int[9]; int cut = 0; int max = 0; for (int i = 0; i < 9; i++) { a[i] = sc.nextInt(); if (max
백준 자바 알고리즘 [최소,최대] Scanner sc = new Scanner(System.in); int k = sc.nextInt(); int[] a = new int[k]; for (int j=0;j a[i]){ min = a[i]; } } System.out.println(min+" "+max); if문으로 최소값이면 min에 넣고 최대값이면 max 넣어 줌