전체 글

전체 글

    데이터베이스의 목적

    데이터베이스의 목적

    스프레드시트 vs 데이터베이스 공통점 - MySQL과 같이 관계형 데이터베이스의 중요한 특징은 스프레드시트와 마찬가지로 데이터를 표의 형태로 표현해준다는 것 - 공통점에 걸맞게 그 두 가지의 기능이 서로 거의 비슷함 차이점 - 데이터베이스는 코딩을 통해서 컴퓨터 언어를 통해서 제어할 수 있음 - 데이터베이스는 마치 사람과 대화하는 것처럼 말을 거는 것 스프레드시트와 MySQL과 같은 관계형 데이터베이스의 아주 중요한 차이점 - 스프레드시트는 사용자가 클릭해서 데이터를 조작한다면 관계형 데이터베이스는 SQL이라고 하는 컴퓨터 언어를 이용해서 데이터를 제어할 수 있음 - 데이터베이스를 구축하면 이런 특성을 이용해서 데이터베이스에 저장된 데이터를 웹을 통해서 사람들에게 공유할 수도 있고, 앱을 통해서도 공유할..

    데이터베이스에 대해

    Database - 매우 방대한 기능을 가지고 있는 정보 도구 - 기능이 방대한 것은 데이터 관련해서 일어날 수 있는 일들이 많기 때문 어떤 데이터베이스를 만나든 제일 먼저 해야 할 것은 데이터베이스의 데이터를 어떻게 입력하고 어떻게 출력하는가를 따져보는 것 - input & output -- 입력 : 데이터의 생성, 수정, 삭제 -- 출력 : 데이터의 읽기 - 이 네 가지 작업을 CRUD라고 부름 - 그 외 복잡한 기능들은 CRUD를 보좌하는 부가적인 기능들에 불과 +---------+ | input | +---------+ | Create | | Update | | Delete | +---------+ +---------+ | output | +---------+ | Read | +---------+..

    프로그래머스 양궁대회(시뮬레이션, 그리디)

    프로그래머스 양궁대회(시뮬레이션, 그리디)

    https://programmers.co.kr/learn/courses/30/lessons/92342 코딩테스트 연습 - 양궁대회 문제 설명 카카오배 양궁대회가 열렸습니다. 라이언은 저번 카카오배 양궁대회 우승자이고 이번 대회에도 결승전까지 올라왔습니다. 결승전 상대는 어피치입니다. 카카오배 양궁대회 운영위원 programmers.co.kr #시뮬레이션 from itertools import combinations_with_replacement # a가 b보다 더 좋은 배치일 경우 true def cmp(a, b): return a[::-1] > b[::-1] def solution(n, info): # 라이언이 가장 큰 점수 차이로 우승할 수 있는 결과를 저장 # ret[0..10] : 10-i점에서 ..

    프로그래머스 쿼드압축 후 개수 새기(분할 정복)

    https://programmers.co.kr/learn/courses/30/lessons/68936 코딩테스트 연습 - 쿼드압축 후 개수 세기 [[1,1,0,0],[1,0,0,0],[1,0,0,1],[1,1,1,1]] [4,9] [[1,1,1,1,1,1,1,1],[0,1,1,1,1,1,1,1],[0,0,0,0,1,1,1,1],[0,1,0,0,1,1,1,1],[0,0,0,0,0,0,1,1],[0,0,0,0,0,0,0,1],[0,0,0,0,1,0,0,1],[0,0,0,0,1,1,1,1]] [10,15] programmers.co.kr 백준 1780 종이의 개수 와 동일한 분할 정복 문제 def solution(arr): import sys sys.setrecursionlimit(10 ** 6) data =..

    백준 18243 Small World Network(플로이드-와샬, BFS)

    https://www.acmicpc.net/problem/18243 18243번: Small World Network 첫 번째 줄에 지구에 있는 사람의 수 N과 친구 관계의 개수 K가 주어진다. 모든 사람은 1부터 N까지 번호가 매겨져 있다. (1 ≤ N ≤ 100, 0 ≤ K ≤ N×(N-1)/2) 두 번째 줄부터 K+1번째 줄까지 친구 www.acmicpc.net import sys n, k = list(map(int,input().split())) edges = [list(map(int,input().split())) for _ in range(k)] INF = sys.maxsize def make_graph(): graph = [[INF] * n for _ in range(n)] for frm, ..

    10816 숫자 카드 2(Hashmap, Counter)

    https://www.acmicpc.net/problem/10816 10816번: 숫자 카드 2 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net #단순 리스트 탐색 n = int(input()) data1 = list(map(int,input().split())) m = int(input()) data2 = list(map(int,input().split())) for i in data2: temp = data1.count(i) print(temp, end=' ') N과 M이 500,000이기 때문에 단순..

    백준 1764 듣보잡(set() 자료형)

    그냥 단순하게 중복을 제외시키는 문제이지만 list를 이용하여 if - in 을 이용하면 시간초과가 난다. #시간초과 import sys input = sys.stdin.readline n,m = list(map(int,input().split())) data = [] data1 = [] for _ in range(n): data.append(input()) for _ in range(m): data1.append(input()) res = 0 ans = [] for i in data: if i in data1: res += 1 ans.append(i) print(res) ans.sort() for i in ans: print(i) 따라서 집합 자료형을 써서 교집합의 성질을 이용하면 쉽게 풀 수 있다. ..

    백준 1780 종이의 개수

    백준 1780 종이의 개수

    https://www.acmicpc.net/problem/1780 1780번: 종이의 개수 N×N크기의 행렬로 표현되는 종이가 있다. 종이의 각 칸에는 -1, 0, 1 중 하나가 저장되어 있다. 우리는 이 행렬을 다음과 같은 규칙에 따라 적절한 크기로 자르려고 한다. 만약 종이가 모두 같은 수 www.acmicpc.net 종이에 써져있는 숫자가 모두 같다면 그걸 하나로 보고 아니면 9개로 자른다. 9개로 자른다는것은 사각형의 좌측상단. 즉 처음 시작점에 대한 좌표를 알아내면 된다. 각 좌표는 (x + i * n//3, y + j * n//3)라는 규칙을 가지고 있다. 처음에 0,0으로 시작해서 0,0이 -1, 0, 1인지 기준을 잡은다음에 n x n까지 돌리는데 만약 1개라도 잘못 나오게 된다면 그 즉시..