분류 전체보기 (217) 썸네일형 리스트형 GROUP BY와 HAVING의 차이점 책을 통해 MySQL에 대한 공부를 하던 중 GROUP BY와 HAVING이 등장했다. 처음에 둘의 기능을 이해하기 어려워 포스팅으로 남긴다. GROUP BY SELECT문을 활용해 정보를 조회할 때 결과값을 그룹화 하여 나타내는 기능이다. //ex) 학교에서 각 학년별 인원수를 조회하고 싶다. SELECT grade, count(*) FROM school GROUP BY grade; 실행 결과 grade | count(*) ---------------- 1 | 1,094 ---------------- 2 | 984 ---------------- 3 | 1,002 HAVING HAVING은 SELECT문에서 그룹화나 집계가 수행된 후에 레코드를 필터링해서 조건에 맞는 데이터만 나타낸다. //ex) 학교에.. MySQL Index? Index란 생성, 수정, 삭제의 속도가 느려지는 대신, 조회(읽기)의 속도를 올려주는 자료구조다. Index가 테이블에 꼭 있어야만 하는 것은 아니다. 테이블에 Index가 없어도 작동하는데는 문제가 없다. 하지만 데이터가 늘 수록 Index의 필요가 절실해진다. SELECT문으로 정보를 조회할 때 평소에는 몇 초 걸리던 작업이 Index를 사용할 수 있다면 소숫점 이하의 시간으로도 작업을 수행할 수 있다. 현재 Real MySQL 8.0 2편으로 데이터베이스를 공부하고 있는데, 이제 시작한 단계여서 Index에 대해 더 서술하기가 어렵다. 인터넷을 통해 찾아보면 인덱스 알고리즘, 인덱스 타입 등 더 많은 정보가 있다. 그 것들은 책에서 알려줄 때에 포스팅할 것이다. 입력받은 전화번호 뒷자리 중 가장 많이 입력된 뒷자리 번호를 출력하는 함수 import java.io.*; import java.lang.*; import java.util.*; public class Main { public static final Scanner scanner = new Scanner(System.in); public static final int MAX_TABLE_LENGTH = 10000; public static int[] table = new int[MAX_TABLE_LENGTH]; /** * data[0] ~ data[n-1]에 등장한 번호들에 대한 빈도수 테이블을 채우는 함수 * @param data * @param n * @param table table[x] := data배열에서 x가 등장한 횟수 */ public static void fillF.. 승리가 가능한지 알아보는 함수 시나리오 : 크기가 n인 정렬되지 않은 정수형 배열에 대해 k개의 연속된 값들의 합이 짝수면 A의 승리, 홀수면 B의 승리다. 하지만 배열의 크기와 값은 B가 정한다. 이에 대해 A가 자신이 이길 확률이 있기는 한지 물어봤다. 우리는 A를 위해 프로그램을 작성한다. import java.io.*; import java.lang.*; import java.util.*; public class Main { public static final Scanner scanner = new Scanner(System.in); /** * 게임의 규칙에 따라 A가 승리할 수 있는 경우의 수가 존재하는지 검사하는 함수 * 윈도우 = 크기가 일정한 범위를 지칭 * @param data * @param n * @param k .. 입력받은 중복 없는 정수형 배열이 정렬시 연속 수열이 될 수 있는지에 대해 판단하는 함수 import java.io.*; import java.lang.*; import java.util.*; public class Main { public static final Scanner scanner = new Scanner(System.in); /** * 배열의 N개의 원소가 연속적인 정수 수열로 표현될 수 있는지 판단하는 함수 * 중복이 존재하지 않는 가정 * @param data * @param n * @return */ public static boolean isConsecutive(int[] data, int n){ int l, g, m; l = g = data[0]; for(int i=0; i data[i]){ l = data[i]; //l = 배열 원소에서의 최소값 } if(g < dat.. 픽셀 수 세기 "구름 에듀의 10주 완성 알고리즘 코딩테스트" 강추 너무 좋습니다. 강사님이 시나리오를 하나씩 분해해서, 더 쉽고 효율적인 방법으로 코드를 작성하십니다. 강의를 통해 배울 수 있다는 것이 감사할 따름입니다. 알고리즘 공부를 고민하고 계신 분들이시라면 위 강의 한 번 찜해보시는 것도 좋을 것 같습니다. import java.io.*; import java.lang.*; import java.util.*; public class Main { public static final Scanner scanner = new Scanner(System.in); /** * 왼쪽 아래 좌표가 (x,y)인 픽셀이 반지름 R인 원(정확히는 1사분면)에 포함되는가? * --> 원점과 중점이 같다면, 원을 4등분해서 1사분면의.. 버블정렬 구현하기 import java.io.*; import java.lang.*; import java.util.*; public class Main { public static final Scanner scanner = new Scanner(System.in); public static void bubbleSort(int[] data, int n) { for(int i = 0 ; i data[j+1]){ //오름차순이 아닌 쌍이 존재 한다 int tmp = data[j]; data[j] = data[j+1]; data[j+1] = tmp; count +=1; } } if(count.. 입력 받은 좌표를 토대로 쌍들 사이 최단거리와 최단거리를 갖는 쌍들의 개수 import java.io.*; import java.lang.*; import java.util.*; public class Main { public static final Scanner scanner = new Scanner(System.in); public static void main(String[] args){ int n = scanner.nextInt(); Point2D[] points = new Point2D[n]; for(int i = 0 ; i N개의 점의 배열 int minDist = Integ.. 이전 1 2 3 4 ··· 28 다음