전체 글
-
[BOJ 23240, Python 3] Colorful Tower of Hanoi알고리즘/BOJ 2021. 10. 13. 21:03
https://www.acmicpc.net/problem/23240 23240번: Colorful Tower of Hanoi 입력은 표준입력을 사용한다. 첫 번째 줄에는 정수 $m$ ($1 \le m \le 25$)이 주어진다. 여기서, $m$은 가장 큰 디스크의 지름을 나타낸다. 이어지는 $m$ 줄에서, $i$ ($1 \le i \le m$) 번째 줄에는 하나의 영 www.acmicpc.net ICPC 2021 예선전에 나온 문제이다. 내가 맡아서 풀은 문제인데 대회 당시 분명 풀이가 맞지만 다른 예외사항을 찾지 못한 것 같아서 맞왜틀이 나와 결국 풀지 못한채로 끝났다. 지금 다시 풀어보니까 예외 사항 하나를 찾아서 풀었음 대회에서 풀었으면 등수가 거의 (현재 등수) / 2 수준으로 뛰어 올랐을텐데 참..
-
Ch 03. Entity-Relationship(ER) 모델을 사용한 데이터 모델링학교 수업/2-2 데이터베이스 기초 2021. 10. 12. 23:02
개념 데이터 모델링은 성공적인 데이터 설계에 있어서 매우 중요한 과정임 Entity-Relationship(ER) model은 인기있는 고수준 개념 데이터 모델임(개념 스키마를 만듦) 1. 데이터베이스 설계와 기능적 설계 데이터 모델 설계는 데이터 설계와 데이터베이스 응용 설계로 나뉨. 서로 상호작용을 하여 응용이 일어남 1. 데이터베이스 설계 - 데이터 설계 - 논리 설계 - 물리적 설계 데이터베이스 요구사항들을 받아 개념적 설계를 하고 고수준의 데이터 모델로 개념 스키마를 만들어 논리 설계를 함 논리 설계는 논리적 스키마를 만들어서 물리적 설계를 하게 됨(특정 DBMS의 데이터 모델로 표현됨) 논리적 설계를 기준으로 윗 부분은 DBMS에 상관없이 독립적으로 설계하고, 이후엔 DBMS에 기능에 맞게 설..
-
Ch 08. 관계 대수와 관계 해석학교 수업/2-2 데이터베이스 기초 2021. 10. 12. 18:29
1. 관계 대수와 관계 연산자 관계 대수 관계를 조작하기 위한 연산자 검색 요구를 명세하는데 사용 질의 결과는 릴레이션 형태로 표현됨 관계 연산자 SELECT($\sigma$), PROJECT($\pi\$) 집합 연산자 - 합집합(UNION) $\cup$, 교집합(INTERSECTION) $\cap$, 차집합(DIFFERENCE) -, 카티션 곱(CARTESIAN PRODUCT) $\times$ JOIN 연산자 $\Join$ 그 외 다른 관계 연산자들 - DIVISION, OUTER JOIN, AGGREGATE FUNCTIONS 2. 관계 연산자 SELECT $\sigma_{}$(R) 로 표현함 은 다음와 같은 형태를 갖는 여러 개의 절로 구성되어 있음 ex) EMPLOYEE 테이블에서 4번 부서에 속하..
-
[Oracle SQL] ON UPDATE CASCADE 대체 방법학교 수업/2-2 데이터베이스 기초 2021. 10. 12. 00:00
Oracle SQL은 ON DELETE CASCADE를 지원하지만, ON UPDATE CASCADE를 지원해주지 않습니다. 그래서 PRIMARY KEY를 변경해야하는데, 동시에 FOREIGN KEY도 값이 변경되게 만들어야 하는 상황에서는 TRIGGER를 만들어서 변경해야 합니다. 먼저 데이터베이스를 하나 만들겠습니다. 데이터베이스는 책에 나온 EMPLOYEE 테이블과 나머지들을 변형해서 만들어봤습니다. EMPLOYEE : 직원 정보가 들어있는 테이블 Name : 직원의 이름 Ssn : 직원의 사회보장번호(우리나라로 치면 주민등록번호) Dno : 부서 번호 DEPARTMENT : 부서 정보가 들어있는 테이블 Dname : 부서의 이름 Dnumber : 부서 번호 Mgr_ssn : 부서의 총책임자 사회보장..
-
[BOJ 23033, Python 3] 집에 빨리 가고 싶어!알고리즘/BOJ 2021. 10. 5. 12:58
https://www.acmicpc.net/problem/23033 23033번: 집에 빨리 가고 싶어! 첫째 줄에 역의 수 N(2 ≤ N ≤ 20,000)과 노선 M개(1 ≤ M ≤ 300,000)가 주어진다. 둘째 줄 부터 M개의 줄에 걸쳐서 4개의 정수 A, B, T, W가 주어지고 A역에서 B역으로 가는 단방향 노선이 존재하며, 소요 www.acmicpc.net 풀이 최단 시간을 구해야 하는데, A역에서 B역으로 가는데 걸리는 시간이 T이므로 다익스트라 알고리즘을 생각해볼 수 있습니다. 그리고 새로운 열차를 기다려서 타는 방법은 현재 시간이 W의 배수이면 그대로 현재 시간을 우선순위 큐에 넣어주고, 현재 시간이 W의 배수가 아니라면 (W - (현재 시간) % W)만큼 시간을 추가하여 움직이게 해주..
-
[BOJ 23034, Python 3] 조별과제 멈춰!알고리즘/BOJ 2021. 10. 5. 12:52
https://www.acmicpc.net/problem/23034 23034번: 조별과제 멈춰! 교수님이 시험 기간에 조별 과제를 준비하셨다...! 가톨릭대학교의 조교 아리는 N명의 학생을 2개의 조로 구성하여 과제 공지를 하려 한다. 이때, 구성된 각 조의 인원은 1명 이상이어야 한다. 각 www.acmicpc.net 풀이 일단 1개의 조로 구성되어 있으면 학생들이 연락하며 소요되는 비용의 총합은 MST로 구할 수 있습니다. 하지만 문제는 2개의 조이기 때문에 시작점의 비용이 0인 곳이 두 곳이 존재합니다. 이런 그래프가 있다고 해봅시다. 여기서 MST를 빨간색으로 칠해보면 아래와 같이 나옵니다. 노란색을 팀장으로 해서 정점 두 곳을 노란색으로 칠하겠습니다. 이렇게 팀장이 있을 때, 답은 (1 + 2..
-
[BOJ 20157, Python 3] 화살을 쏘자!알고리즘/BOJ 2021. 10. 4. 13:54
https://www.acmicpc.net/problem/20157 20157번: 화살을 쏘자! 호준이는 요즘 활 쏘기에 푹 빠져 있다. 열심히 활 쏘기를 연습하던 호준이는 쏠 때 마다 10점이 나오는 경지에 이르렀다. 이렇다 보니 한 방향으로 있는 과녁에 쏘는 것에 실증을 느낀 호준이는 www.acmicpc.net 풀이 좌표평면에서 한 방향으로 화살을 쏜다는 것은 기울기가 설정되어 있다는 뜻입니다. 그래서 제 1사분면부터 제 4사분면까지 defaultdict를 만들어주고, 각 좌표의 최대공약수를 통해 기울기를 구해주고 조건에 맞는 사분면에 넣어주면 됩니다. x = 0 혹은 y = 0일 때는 따로 변수를 둬서 구해주고, 여기에 있는 값들중 최댓값을 구해주면 됩니다. 코드 1 2 3 4 5 6 7 8 9 ..
-
[BOJ 20158, Python 3] 사장님 달려가고 있습니다알고리즘/BOJ 2021. 10. 4. 13:50
https://www.acmicpc.net/problem/20158 20158번: 사장님 달려가고 있습니다 (1,1)에서 (1,2)로 이동한다. 다시 한 번 오른쪽으로 이동할 때 (1,2)에서 (1,4)로 1초안에 달려갈 수 있다. (1,3)에서 통제 시작 시간이 2초지만 현재 2초가 되지 않았기 때문에 이동할 수 있고 (1,4)에 www.acmicpc.net 풀이 지문을 읽어보면 BFS 알고리즘인 것을 알 수 있지만, 지문 내용이 구현하기가 참 까다롭습니다. 주의 할 점 가속도 같은 방향으로 달릴 경우 가속도가 붙는데, 속도 조절이 불가능함 방향 전환을 해야 1초에 1칸씩 달릴 수 있게 됨 통제 구역 가속도가 붙은 채로 통제 구역을 이동하면 [도중에 지나가는 통제 구역의 통제 시간] > [움직이기 시작..