반응형 IT188 [데이터베이스] 역정규화란 무엇인가? 학습 목표: 역정규화는 무엇인가? 성능이나 개발의 편의성을 위해 구조를 바꾸는 것. 정규화를 하고 역정규화를 한다 먼저 두개의 테이블이 있다 topic_title별로 tag_name을 알기위해서는 테이블 join을 해야한다. topic_title tag_id mysql 1 mysql 2 oracle 3 oracle 4 tag_id tag_name 1 rdb 2 free 3 commercial 위 두 테이블을 아래 테이블로 바꾼다면 join을 하지 않기때문에 더 빠르게 데이터를 불러올수있다. 이런 작업을 역정규화라고 한다. topic_title tag_id tag_name mysql 1 rdb mysql 2 free oracle 3 commercial oracle 1 rdb 역정규화를 하게 되면 정규화를 .. 2023. 5. 25. [프로그래머스] SQL 문제풀이 - 입양 시각 구하기(2) https://school.programmers.co.kr/learn/courses/30/lessons/59413 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 보호소에서는 몇 시에 입양이 가장 활발하게 일어나는지 알아보려 합니다. 0시부터 23시까지, 각 시간대별로 입양이 몇 건이나 발생했는지 조회하는 SQL문을 작성해주세요. 이때 결과는 시간대 순으로 정렬해야 합니다. 간단해보였지만 빈 시간대에 테이블을 생성하는것에서 애를 먹었다. 두 가지 방법으로 풀이하고 알아보겠습니다. 첫 풀이 1. set을 통해 변수를 선언하고 이용할 수 있다 2. hou.. 2023. 5. 24. [프로그래머스] 파이썬 문제풀이 - 합승 택시 요금 https://school.programmers.co.kr/learn/courses/30/lessons/72413#qna 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 이 문제를 보면 그래프 문제라는것과 정점 사이의 최단거리를 구해야한다는 것을 파악해야한다. 그렇다면 모든 정점에서 모든 정점으로의 최단 경로를 구할 수 있는 플로이드 와샬 알고리즘을 적용해볼 수 있다. 하지만 여기서 합승이라는 개념이 조금 어렵게 다가올 수 있다. 출발지를 S 사람 a의 목적지를 A 사람 b의 목적지를 B 마지막으로 합승에서 하차하는 지점을 C라고 생각해보자 우리의 목적은 .. 2023. 5. 23. [프로그래머스] 파이썬 문제풀이 - [1차] 뉴스 클러스터링 https://school.programmers.co.kr/learn/courses/30/lessons/17677 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 내 풀이 1. 대문자를 소문자로 바꿔준다 2. 두 문자열을 탐색하며 두글자씩 끊어서 알파벳인경우만 리스트에 삽입한다 3. a와 b 리스트를 깊은 복사해준다 4. 다중집합에서 교집합을 구한다 5. 다중집합에서 합집합을 구한다 import math def solution(str1, str2): str1=str1.lower() str2=str2.lower() a=[] b=[] for i in range.. 2023. 5. 23. [파이썬] 파이썬 코드로 excel 파일 암호화해서 저장하기 파이썬 코드로 excel 파일에 암호를 걸고 저장하는 방법을 공유하겠습니다. #python 으로 excel 파일 암호 걸어서 저장하는 작업 import win32com.client as win32 # Excel 파일 경로 file_path = "C:\\Users\\82104\\Downloads\\test.xlsx" # 비밀번호 password = "password" # Excel 애플리케이션 객체 생성 excel_app = win32.gencache.EnsureDispatch("Excel.Application") excel_app.Visible = False # Excel 파일 열기 workbook = excel_app.Workbooks.Open(file_path) # 파일 잠금 처리 workbook.P.. 2023. 5. 23. [프로그래머스] 파이썬 문제풀이 - 여행경로 https://school.programmers.co.kr/learn/courses/30/lessons/43164 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 첫 풀이 1. 딕셔너리 구조로 그래프를 생성한다 2. 시작점:[도착점] 쌍으로 만든다 3. 도착점의 리스트를 역순으로 정렬한다 4. 스택에 출발점인 ICN을 넣고 나머지 점들을 순회한다 5. 스택이 빌 때까지 아래 과정들을 반복한다 6. 스택에서 top 데이터를 꺼낸다 7. top이 그래프에 없거나 top을 시작점으로 하는 티켓이 없는 경우, 스택에서 꺼내 path에 저장 8. 7번이 아니라면 t.. 2023. 5. 22. [프로그래머스] 파이썬 문제풀이 - 섬 연결하기 https://school.programmers.co.kr/learn/courses/30/lessons/42861 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 내 풀이 1. 섬들을 모두 연결해야하고 이 때 최소 비용으로 연결하는 방법을 찾는다면 크루스칼 알고리즘을 사용할 수 있다 2. 섬들을 연결하는 비용으로 정렬한다 3. 적은 비용부터 하나씩 탐색하여 연결된 부모 노드를 찾거나 부모노드라면 더 작은 노드로 값을 바꾼다 def solution(n, costs): def getparent(parent,n): if parent[n]!=n: parent[n].. 2023. 5. 22. [알고리즘] 크루스칼 알고리즘 크루스칼은 최소 비용 신장 트리를 만들기 위한 대표적인 알고리즘으로 가장 적은 비용으로 모든 노드를 연결하기 위해 사용한다. 즉 노드를 연결해 모든 노드가 다 연결되게 할 때 제일 적은 비용을 사용하는 방법을 찾는것이다. 예를 들어 여러 개의 도시가 있을 때 각 도시를 도로를 이용해 연결할 때 최소한의 비용으로 하는 알고리즘 노드=정점=도시 -> 그래프에서 동그라미 부분 간선=거리=비용 -> 그래프에서 선에 해당하는 부분 최소비용신장트리의 간선숫자는 노드숫자 -1이다 위 그래프에서 노드는 7개, 간선은 10개, 최소비용신장트리의 간선 숫자는 6개이다 크루스칼 구현 과정 1. 모든 간선 정보를 오름차순으로 정렬 2. 비용이 적은 간선부터 사이클이 발생 안 한다면 차근차근 그래프에 포함. 사이클이 발생하면 .. 2023. 5. 22. [네트워크] HTTPS 통신방법: 대칭키와 비대칭키 HTTPS는 HTTP에 보안 기능을 추가해 어떤 웹사이트에 보내는 정보를 다른 누군가 훔쳐보지 못한다는 점에서 안전하다. 이것을 가능하게 하는 기술에는 대칭키와 비대칭키 방식이 있다. 대칭키 방식은 메시지를 보내는 쪽과 메시지를 받는 쪽이 메시지를 암호화하고, 이를 다시 메시지로 바꾸는 즉 복호화하는 같은 방식으로 공유한다. 둘다 동일한 키를 가지고 암호화 복호화를 하는 것이다 여기서 한 가지 문제가 발생한다 대칭키는 중간에 누가 정보를 가르채도 못 알아보게 하는게 목적인데 한 번은 키를 전송해야한다. 이 때 중간에서 키를 가로 챌 수 있는것이다. 그러면 대칭키가 말짱 도루묵이 된다 그래서 사용하는게 비대칭키 방식이다 공개키라고도 하는 이 방식은 a,b의 키를 가지고 a키로 암호화하면 b키로만 복호화 할.. 2023. 5. 20. 이전 1 2 3 4 5 6 7 8 ··· 21 다음 728x90