본문 바로가기

전체 글147

2-1) SQL이란? * 이 글은 부스트코스 웹 백엔드 강의 수강 바탕으로 작성되었습니다. "사람과 사람이 대화하기 위해서는 언어가 필요합니다. DBMS에게 명령을 내릴 때도 특별한 명령이 필요합니다. 이 명령을 SQL이라고 합니다." - 부스트코스 sql 강의 중 제일 상단에 위치해있던 문구이다. 여태 sql에 대한 설명 중 가장 와 닿았던 표현이다. 핵심 개념 create database grant flush privileges select - sql을 사용할 때 터미널을 이용해 본적은 MariaDB를 사용했을 때였고, 이후부턴 workbench를 사용해서 터미널이 익숙하지 않았지만 금방 이해가 잘 되었다. 1. SQL(Structured Query Language) SQL은 데이터를 보다 쉽게 검색하고 추가, 삭제, 수.. 2020. 7. 22.
1) intro * 이 글은 부스트코스 웹 백엔드 강의 수강 바탕으로 작성 되었습니다. - 부스트코스 웹 백엔드 첫 강의는 SQL로 시작한다. 따라서 DB와 DBMS에 대한 간단한 설명을 볼 수 있다. * 핵심 개념 데이터베이스 (Database) 데이터베이스 메니지먼트 시스템 (DBMS) 1. 데이터베이스와 데이터베이스 관리 시스템 Q> 데이터베이스와 데이터베이스 관리 시스템을 어린이도 알 수 있을 정도로 설명해주세요. A> 도서관에 있는 책들이 데이터베이스라고 한다면, 도서관 사서분들이나 도서 정보를 찾아주는 컴퓨터를 DBMS라고 볼 수 있습니다. - 개인적으로 DB와 DBMS를 이론적으로만 외웠지 설명을 해본적은 없었다. 하지만 위의 대답 한 마디로 더 명확하게 이해가 되었고, 나도 이렇게 설명을 해줄 수 있게 되.. 2020. 7. 22.
없어진 기록 찾기 문제 출처 : https://programmers.co.kr/learn/courses/30/lessons/59042 코딩테스트 연습 - 없어진 기록 찾기 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디 programmers.co.kr LEFT JOIN을 사용해서 문제를 풀었다. 주어진 문제 속 '천재지변으로 인해 일부 데이터가 유실되었습니다. 입양을 간 기록은 있는데, 보호소에 들어온 기록이 없는 동물의 ID와 이름을 ID 순으로 조회하는 SQL문을 작성해주세요.' 라.. 2020. 6. 25.
2309번 일곱난쟁이 문제 출처 : https://www.acmicpc.net/problem/2309 2309번: 일곱 난쟁이 아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다. www.acmicpc.net 문제를 보자마자 하나하나 다 구하기엔 정말 오래 걸리겠다고 생각이 들어 과감하게 random을 사용했다. random.sample을 사용해 7명만 무작위로 뽑힐 수 있게 했고, 이들의 합이 100이면 break를 통해 빠져나올 수 있도록 했다. (개인적으로 과감히 선택한 random으로 성공시켜 기분좋게 만들어줬던 문제 :) ) import sys, random T=[] for i in ra.. 2020. 6. 25.
6588번 골드바흐의 추측 문제 출처 : https://www.acmicpc.net/problem/6588 6588번: 골드바흐의 추측 문제 1742년, 독일의 아마추어 수학가 크리스티안 골드바흐는 레온하르트 오일러에게 다음과 같은 추측을 제안하는 편지를 보냈다. 4보다 큰 모든 짝수는 두 홀수 소수의 합으로 나타낼 수 있다. www.acmicpc.net 바로 이전문제가 하나하나 소수를 찾았던 코드를 짠 문제였는데 바로 에라토스테네스의 체를 사용한 문제가 나왔다. 이 문제는 이전처럼 코드를 짜면 시간초과가 난다..! 그래서 에라토스테네스의 체를 사용하여 문제를 풀었더니 바로 성공했다! import sys result=[] s=[True]*1000001 for k in range(2,1000001): if s[k]==True: fo.. 2020. 6. 25.
1978번 소수 찾기 문제 출처 : https://www.acmicpc.net/problem/1978 1978번: 소수 찾기 첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다. www.acmicpc.net 에라토스테네스의 체를 사용하지 않고 하나하나 찾아주는 코드를 짜보았다. 물론 에라토스테네스의 체를 알기 전 풀었던 문제이다 ㅎㅎ,, 하지만 이렇게 풀면 시간초과 날 확률이 매우 크기 때문에 에라토스테네스의 체를 사용하는 것을 무척이나 추천드립니다..!!! import sys T=int(input()) result=[] for _ in range(T): A=list(map(int, sys.stdin.readline().split())) for i in .. 2020. 6. 25.
1934번 최소공배수 문제 출처 : https://www.acmicpc.net/problem/1934 1934번: 최소공배수 두 자연수 A와 B에 대해서, A의 배수이면서 B의 배수인 자연수를 A와 B의 공배수라고 한다. 이런 공배수 중에서 가장 작은 수를 최소공배수라고 한다. 예를 들어, 6과 15의 공배수는 30, 60, 90등이 있� www.acmicpc.net 이전 최대공약수, 최소공배수와 비슷한 유형이다. 직접 찾아주는 코드를 짰고, 더 간단한 코드로 만들어야겠다,, 그리고 이전에도 말했듯이 백준에서 시간을 좀 더 줄이기 위해 항상 import sys를 사용한다..! import sys def solve(A): for i in range(1,min(A)+1): if not A[0]%i: if not A[1]%i: r.. 2020. 6. 25.
2609번 최대공약수와 최소공배수 문제 출처 : https://www.acmicpc.net/problem/2609 2609번: 최대공약수와 최소공배수 첫째 줄에는 입력으로 주어진 두 수의 최대공약수를, 둘째 줄에는 입력으로 주어진 두 수의 최소 공배수를 출력한다. www.acmicpc.net 정말 문제제목 그대로 최대공약수를 구하고 구한 최대공약수(max(result))를 이용해서 최소공배수를 구했다. 아직 내 머리에서는 주어진 문장 그대로? 해석해서 푸는게 덜 어려운가보다,, 나중엔 최대공약수, 최소공배수를 함수로 쉽게 구해야지ㅠ_ㅠ import sys A=list(map(int, sys.stdin.readline().split())) result=[] for i in range(1,min(A)+1): if not A[0]%i: if .. 2020. 6. 10.
1260번 DFS와 BFS 문제 출처 : https://www.acmicpc.net/problem/1260 1260번: DFS와 BFS 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사 www.acmicpc.net 내가 제일 어려워하고 시도조차 하지 않(못)했던 BFS와 DFS,,,,,,,, 진짜 관련 문제 나올때마다 자연스럽게 쓰루~,,,,,, ㅎㅎㅎ,, 근데 이젠 정말 정면돌파 해야할 것 같아서 블로그마다 개념을 다시 찾아보고 코드를 이해하려고 노력했다. 그래서 많은 코드와 방법 중 제일 이해가 잘 되었던 바로 아래의 코드..! 내 방식대로 조금 변형했.. 2020. 6. 10.