본문 바로가기

전체 글156

5주차. DB 트랜잭션, 회복 1. DB 세션에 대해서 설명해주세요. *사용자 또는 응용 프로그램이 DB에 접속하고 상호 작용하기 위해 필요한 연결로, DB 접속을 시작으로 접속 종료까지의 전체 기간을 의미한다. [특징] 1) 연결 유지 - 세션이 확립되면, 일정 기간동안 DB에 대한 연결을 유지할 수 있다. 2) 트랜잭션 처리 - 트랜잭션을 관리하고, DB 작업을 일관성 있게 처리한다. 3) 자원 할당 및 해제 - DB 연결에 필요한 자원을 할당하고, 사용이 끝나면 이를 해제한다. 4) 보안 및 권한 권리 - DB 접근하기 위한 보안 및 권한 정보를 관리한다. 2. Commit에 대해서 설명해주세요. *트랜잭션 내에서의 변경사항을 DB에 영구적으로 적용하고, 트랜잭션을 종료하는 작업 [시기] 트랜잭션이 완료될 때 명시적으로 호출되는.. 2023. 12. 4.
[백준] 1325번 효율적인 해킹 _ Python https://www.acmicpc.net/problem/1325 [초기 접근 방법] - '한 번에 가장 많은 컴퓨터를 해킹할 수 있는 컴퓨터 번호' 출력 - 각 노드, 즉 각 컴퓨터에서 bfs 탐색을 하며 그 깊이를 측정하고 가장 깊은 노드를 출력하면 오름차순으로 출력한다. [생각] - 단순한 그래프 탐색 문제 [코드] # 풀이 시간 : 15분 # 시간복잡도 : O(N+e) # 공간복잡도 : O(N+e) # 참고 : - # Python3는 시간초과 from collections import deque def bfs(k): visited = [False] * (N + 1) # 계속 초기화 필요 cnt = 0 # 연결된 간선 갯수 세기 q = deque() q.append(k) visited[k] = Tr.. 2023. 11. 28.
[백준] 1600번 말이 되고픈 원숭이 _ Python https://www.acmicpc.net/problem/1600 [초기 접근 방법(x)] 1. 일단 도보로만 이동한다고 생각하고, 목적지까지의 이동횟수를 구한다. (bfs) 2. 목적지에서 K번 '말'의 방향으로 뛰어본다. (dfs) - visited[][] 값이 있을 경우, 즉 도보로 갈 수 있는 경우 result 값을 갱신한다. [생각] 위의 접근이 틀린 이유는, 중간에 '말' 동작을 실행할 수도 있다는 것이다. 저 방법대로라면, 끝에서밖에 '말' 동작을 실행한다. 아예 틀린 접근으로 시간을 소비하고, 블로그를 참조하여 다시 풀이했다. 아.. 그리고 python에서 3차원 배열을 정의하는데, 개념을 잡느라 시간을 많이 썼다. lst = [[[0 for _ in range(depth)] for _ i.. 2023. 11. 27.
[백준] 5547번 일루미네이션 _ Python [초기 접근 방법] 1. 정육각형이므로, 6개의 지역에 접근해야 한다. - 짝수 행, 홀수 행에 따라 육각형의 탐색 범위가 달라진다. 2. 그런데 닫힌 구역을 어떻게 판단하지? - 이 부분에 대해서 visited[i][j] == 6 일 경우로 판단하자 라고 생각했지만, 닫힌 구역내의 육각형이 여러 개일 경우 불가한다.. [생각] 예전에 팀프로젝트로 미로찾기 알고리즘을 한 적이 있었는데, 기능 중 하나로 '닫힌 구역에 대해서 미로가 더 이상 탐색하지 않게끔 한다.' 가 떠올랐다. 각설하고, 생각을 해보았지만 닫힌 구역에 대한 판단에 대한 알고리즘이 떠오르지 않아 블로그를 참조했다. 1. 한 번에 바깥쪽의 공간 지역 전체 탐색하기 위해, 상하좌우 4개의 구역을 1칸씩 늘려준다. 2. 주변 6개의 인접 구역.. 2023. 11. 27.
4주차. 이상현상, 함수적 종속성, 정규화 1~4. 이상 현상이 뭘까요? *주로 관계형 데이터베이스에서 발생하는 문제로, 데이터의 무결성이 깨지는 상황을 의미 1) 삽입 이상(Insertion Anomaly) - 데이터를 삽입하기 위해 필요한 정보가 부족한 상황 ex. 직원을 추가할 때 'IT' 부서가 없는데, 설정했을 때 2) 갱신 이상(Update Anomaly) - 중복된 정보로 인해 동일한 내용을 여러 번 갱신해야 하는 상황 ex. 부서 이름이 변경되면, 해당 부서에 있는 모든 직원 레코드 수정 3) 삭제 이상(Deletion Anomaly) - 특정 데이터를 삭제할 때, 그 정보와 관련된 다른 정보도 함께 삭제되는 상황 ex. 부서 정보를 삭제하면, 해당 부서에 있는 모든 직원 레코드 삭제 이러한 이상현상를 방지하기 위해 "데이터 정규화.. 2023. 11. 26.
[백준] 16918번 봄버맨 _ Python [초기 접근 방법] 1초 - 초기 상태 2초 - 폭탄이 설치되어 있지 않은 모든 칸 폭탄 설치 3초 - '초기 폭탄'의 인접 지역 펑! 4초 - 폭탄이 설치되어 있지 않은 모든 칸 폭탄 설치 5초 - 2초에 설치된 폭탄 펑! 6초 - 폭탄이 설치되어 있지 않은 모든 칸 폭탄 설치 7초 - 4초에 설치된 폭탄 펑! [생각] 홀수∙짝수 시간에 대한 규칙을 찾고, 폭탄을 구분해서 어떻게 터트릴까 고민했던 문제 왜 이렇게 오래 걸렸을까? → 머리로만 생각하지말고, 직접 메모로 기록하면서 반복되는 규칙을 찾자 [코드] # 풀이 시간 : 1시간 30분 # 시간복잡도 : O((N/2) * (5B + RC)) # N회 반복 # 홀수 : bfs 폭탄 터지기 (5개 간선, 폭탄 개수 B) # 짝수 : 모든 칸 폭탄 설치.. 2023. 11. 26.