분류 전체보기 22

[SQLD 공부] DDL, DML, DCL, TCL이란?

DDL 데이터 조작어 설명 ) 데이터베이스에 들어있는 데이터를 조회하거나 검색하기 위한 명령어를 말하는 것으로 RETRIEVE 라고도 한다. 명령어 ) SELECT 설명 ) 데이터베이스의 테이블에 들어 있는 데이터에 변형을 가하는 종류의 명령어들을 말한다. 예를 들어 데이터를 테이블에 새로운 행을 집어넣거나, 원하지 않는 데이터를 삭제하거나 수정하는 것들의 명령어들을 DML이라고 부른다. 명령어 ) INSERT, UPDATE, DELETE DML 데이터 정의어 설명 ) 테이블과 같은 데이터 구조를 정의하는데 사용되는 명령어들로 그러한 구조를 생성하거나 변경하거나 삭제하거나 이름을 바꾸는 데이터 구조와 관련된 명령어들을 DDL이라고 부른다, 명령어 ) CREATE, ALTER, DROP, RENAME DC..

개념공부 2023.08.09

[백준]2839번 설탕 배달

문제 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그램 봉지와 5킬로그램 봉지가 있다. 상근이는 귀찮기 때문에, 최대한 적은 봉지를 들고 가려고 한다. 예를 들어, 18킬로그램 설탕을 배달해야 할 때, 3킬로그램 봉지 6개를 가져가도 되지만, 5킬로그램 3개와 3킬로그램 1개를 배달하면, 더 적은 개수의 봉지를 배달할 수 있다. 상근이가 설탕을 정확하게 N킬로그램 배달해야 할 때, 봉지 몇 개를 가져가면 되는지 그 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N이 주어진다. (3 ≤ N ≤ 5000) 출력 상근이가 배달하는 봉지의 최소 개수를 출력한다. 만약, 정..

코테 공부 2023.04.27

데이터베이스 설계

데이터베이스 설계의 개념 데이터베이스 설계란 사용자의 요구의 분석하여 그것들을 컴퓨터에 저장할 수 있는 데이터베이스의 구조에 맞게 변형한 후 특정 DBMS로 데이터베이스를 구현하여 일반 사용자들이 사용하게 하는 것이다. 데이터베이스 설계 시 고려사항 무결성 : 삽입, 삭제 갱신 등의 연산 후에도 데이터베이스에 저장된 데이터가 정해진 제약 조건을 항상 만족해야한다. 일관성 : 데이터베이스에 저장된 데이터들 사이나, 특정 질의에 대한 응답이 처음부터 끝까지 변함없이 일정해야 한다. 회복 : 시스템에 장애가 발생했을 때 장애 발생 직전의 상태로 복구할 수 있어야한다. 보안 : 불법적인 데이터의 노출 또는 변경이나 손실로부터 보호할 수 있어야 한다. 효율성 : 응답시간의 단축, 시스템의 생산성, 저장 공간의 최..

[프로그래머스] 카드 뭉치 -Java

문제 설명 코니는 영어 단어가 적힌 카드 뭉치 두 개를 선물로 받았습니다. 코니는 다음과 같은 규칙으로 카드에 적힌 단어들을 사용해 원하는 순서의 단어 배열을 만들 수 있는지 알고 싶습니다. 원하는 카드 뭉치에서 카드를 순서대로 한 장씩 사용합니다. 한 번 사용한 카드는 다시 사용할 수 없습니다. 카드를 사용하지 않고 다음 카드로 넘어갈 수 없습니다. 기존에 주어진 카드 뭉치의 단어 순서는 바꿀 수 없습니다. 예를 들어 첫 번째 카드 뭉치에 순서대로 ["i", "drink", "water"], 두 번째 카드 뭉치에 순서대로 ["want", "to"]가 적혀있을 때 ["i", "want", "to", "drink", "water"] 순서의 단어 배열을 만들려고 한다면 첫 번째 카드 뭉치에서 "i"를 사용한..

코테 공부 2023.04.26

[자바] 큐(QUEUE) 클래스 사용법과 예제 알아보기

큐(QUEUE)란? 큐는 리스트의 한쪽에서는 삽입 작업이 이루어지고 다른 한쪽에서는 삭제 작업이 이루어지도록 구성한 자료 구성이다. 큐의 특징 Queue는 먼저 들어간 데이터가 먼저 나오는 구조를 가지며, 이를 FIFO (First In First Out) 구조라고한다. 큐에서는 한쪽 끝을 front로 정하고, 삭제 연산만 수행한다. 반대쪽 끝은 rear로 정하고, 삽입 연산만 수행한다. 그래프의 넓이 우선 탐색 (BFS)에서 큐를 사용한다. 컴퓨터 버퍼에서도 큐가 주로 사용됩니다. 입력이 즉시 처리되지 못하는 경우에는 버퍼(큐)를 만들어 데이터를 대기시키는 용도로 활용된다. 큐의 예제 큐 선언방법 import java.util.Queue; import java.util.LinkedList; public..

JAVA 공부 2023.04.19

[백준] 15552번 빠른 A+B - Java

문제 본격적으로 for문 문제를 풀기 전에 주의해야 할 점이 있다. 입출력 방식이 느리면 여러 줄을 입력받거나 출력할 때 시간초과가 날 수 있다는 점이다. C++을 사용하고 있고 cin/cout을 사용하고자 한다면, cin.tie(NULL)과 sync_with_stdio(false)를 둘 다 적용해 주고, endl 대신 개행문자(\n)를 쓰자. 단, 이렇게 하면 더 이상 scanf/printf/puts/getchar/putchar 등 C의 입출력 방식을 사용하면 안 된다. Java를 사용하고 있다면, Scanner와 System.out.println 대신 BufferedReader와 BufferedWriter를 사용할 수 있다. BufferedWriter.flush는 맨 마지막에 한 번만 하면 된다. P..

코테 공부 2023.04.18

[백준] 10989번 수 정렬하기 3 - Java

문제 N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오. 입력 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다. 출처 : 백준 10989번 수 정렬하기3 문제 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; class Main { public static void main(String[] args) throws IOException { BufferedReader br = new Buffer..

코테 공부 2023.04.18

[백준] 10431번 줄세우기 - Java

문제 초등학교 선생님 강산이는 아이들을 데리고 단체로 어떤 일을 할 때 불편함이 없도록 새로 반에 배정받은 아이들에게 키 순서대로 번호를 부여한다. 번호를 부여할 땐 키가 가장 작은 아이가 1번, 그 다음이 2번, ... , 가장 큰 아이가 20번이 된다. 강산이네 반 아이들은 항상 20명이며, 다행히도 같은 키를 가진 학생은 한 명도 없어서 시간이 조금 지나면 아이들은 자기들의 번호를 인지하고 한 줄로 세우면 제대로 된 위치에 잘 서게 된다. 하지만 매년 첫 며칠간 강산이와 강산이네 반 아이들은 자기가 키 순으로 몇 번째인지 잘 알지 못해 아주 혼란스럽다. 자기 위치를 찾지 못하는 아이들을 위해 강산이는 특별한 방법을 생각해냈다. 우선 아무나 한 명을 뽑아 줄의 맨 앞에 세운다. 그리고 그 다음부터는 ..

코테 공부 2023.04.17

자료구조 - 배열

자료구조 - 배열 순서(index)를 가진 데이터의 집합 가장 기본적인 자료구조 Scanner sc = new Scanner(System.in) int N = sc.nextInt(); int[] arr = new int[N] for (int i = 0; i < Nl i++) arr[i] = sc.nextInt();// 배열의 저장 long sum = 0; for (int i=0; i < N; i++) sum += arr[i]// 배열의 탐색, 원소의 접근 생성과 동시에 크기가 고정됨 전체 원소가 메모리상에 일렬로 저장됨 배열에 대한 아래 기능들의 시간복잡도는? get(int idx): idx번째 원소 반환 - 메모리가 연속적이기 때문에 arr의 시작 주소로부터 idx만큼 떨어진 원소의 주소를 바로 계산하..

코테 공부 2023.04.12

시간복잡도

시간복잡도란? 입력 크기와 알고리즘간의 관계 알고리즘의 복잡도를 나타내는 지표 중 하나 입력 크기에 대해 프로그램의 동작시간을 가늠해볼 수 있는 수단 문자열의 알파벳 구성을 파악하는 코드의 시간복잡도? for (int i = 0; i < str.length(); i++) { int alphabetIndex = str.charAt(i) - 'A'; count[alphabetIndex]++; } 이중 반복문의 시간복잡도? long sum = 0; for (int i = 0; i < N; i++) for (int j = 0; j < M; j++) sum += (long)a[i] * b[j]; 코딩테스트에서의 시간복잡도? 현실에서 프로그램의 동작시간은 환경적 요소에 따라 달라질 수 있다. 보편적인 코딩테스트에는..

코테 공부 2023.04.12