일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 브루트포스 알고리즘
- 백준알고리즘
- 파이썬
- 다이나믹 프로그래밍
- 완전탐색
- javascript
- 스택
- 깊이우선탐색
- 다익스트라
- SW Expert Academy
- 백트래킹
- 자바스크립트
- SWEA
- 너비 우선 탐색
- DFS
- Python
- oracle
- 그리디 알고리즘
- 백준 알고리즘
- 브루트포스
- 문자열
- 데이터베이스
- DP
- 그래프 이론
- 구현
- 프로그래머스
- 그래프 탐색
- 너비우선탐색
- BFS
- 오라클
- Today
- Total
목록분류 전체보기 (148)
민규의 흔적
2024년 5월 8일문제 링크 : SWEA 1289번 - 원재의 메모리 복구하기 SW Expert AcademySW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!swexpertacademy.com 문제 접근 파이썬 기준, 10개의 테스트 케이스를 합쳐 4초의 시간 제한을 두고 있기 때문에, 시간복잡도를 고려해야겠다고 판단했다. 문제를 보면, 특정 인덱스 위치 값을 0 또는 1로 결정하면 해당 위치 이후부터 끝까지 모두 결정한 값으로 덮어 씌워지도록 설정이 되어있다. 이를 보고 " 초기 상태(모든 bit가 0)의 0번째 인덱스부터 끝까지, 원래 메모리의 인덱스 위치와 다르면 반대 값으로 치환해주어 그 뒤의 값도 계속 바꿔나가주면 되겠구나! " 라고 잠깐 생각했지만 위험한 생각이었..
2024년 4월 16일 LIS (최장 증가 부분 수열) 최장 증가 부분 수열(Longest Increasing Subsequence, LIS)이란, 주어진 배열 내에 존재하는 여러 부분 수열 중 오름차순을 준수하며 가장 길게 나열되어 있는 부분 수열을 의미한다. 예를 들어, { 2, 3, 8, 6, 4, 5, 9, 1 } 라는 배열의 LIS는 { 2, 3, 4, 5, 9 } 이며 길이는 5 이다. 오름차순을 준수하는 부분 수열은 { 2, 3 }, { 2, 3, 5 }, { 2, 3, 6, 9 } 등 많지만, 가장 긴 부분 수열은 { 2, 3, 4, 5, 9 } 이다. LIS의 길이를 알아내는 방법은 대표적으로 완전 탐색법과 DP(다이나믹 프로그래밍), 이분 탐색이 존재한다. 이 중, 완전 탐색을 통해 모..
2024년 4월 11일 문제 링크 : 백준 2579번 - 계단 오르기 2579번: 계단 오르기 계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. 과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점 www.acmicpc.net 문제 계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. 과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점수를 얻게 된다. 예를 들어 와 같이 시작점에서부터 첫 번째, 두 번째, 네 번째, 여섯 번째 계단을 밟아 도착점에 도달하면 총 점수는 10 + 20 + 25 + 20 = 75점이 된다. 계단 오르는 데는 다음과 같은 규칙이..
2024년 4월 2일 문제 링크 : 백준 1484번 - 다이어트 1484번: 다이어트 성원이는 다이어트를 시도중이다. 성원이는 정말 정말 무겁기 때문에, 저울이 부셔졌다. 성원이의 힘겨운 다이어트 시도를 보고만 있던 엔토피아는 성원이에게 새로운 저울을 선물해 주었다. www.acmicpc.net 문제 성원이는 다이어트를 시도중이다. 성원이는 정말 정말 무겁기 때문에, 저울이 부셔졌다. 성원이의 힘겨운 다이어트 시도를 보고만 있던 엔토피아는 성원이에게 새로운 저울을 선물해 주었다. 성원이는 엔토피아가 선물해준 저울 위에 올라갔다. “안돼!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! G 킬로그램이나 더 쪘어ㅜㅠ”라고 성원이가 말했다. 여기서 말하는 G킬로그램은 성원이의 ..
COMMIT과 ROLLBACK 트랜잭션의 완료 - COMMIT 연산 트랜잭션에서 변경하려는 내용이 데이터베이스에 완전하게 반영된다. 트랜잭션의 철회 - ROLLBACK 연산 트랜잭션에서 변경하려는 내용이 데이터베이스 일부만 반영된 경우, 원자성을 보장하기 위해서 트랜잭션이 갱신한 사항을 트랜잭션 수행되기 전의 상태로 되돌린다. 아래의 예시를 보자. 위 그림의 파란색 선 전체를 하나의 트랜잭션으로 보자. 위의 트랜잭션 연산은 정상적으로 수행되어, 끝내 COMMIT 연산을 통해 데이터베이스에 트랜잭션으로 변경된 내용이 그대로 반영되었다. 하지만, 아래의 트랜잭션 연산은 d1, u1, i1 연산을 수행한 이후, i2 연산을 수행하기 전에 고장이 나버려 수행하지 못하였다. 위와 같은 경우 ROLLBACK 연산을..
트랜잭션이란, 하나의 논리적인 단위를 수행하는 데이터베이스 연산자들의 모임이다. 40명의 학생 데이터 중, 하나를 삽입하는 것도 트랜잭션이며, 한 번에 삽입하는 것도 트랜잭션이다. DBMS는 트랜잭션 단위로 연산 중간에 하나라도 실패하면 전으로 돌릴 수 있다. 다음의 예시를 보자. 위 예시는 두 사람 간의 계좌이체 트랜잭션이다. 계좌이체 시 한 명은 돈을 보냈는데 다른 한 명은 돈을 받지 못하거나, 반대로 돈을 보내려다 취소했는데 다른 한 명이 돈을 받는 상황이 생기면 매우 곤란할 것이다. 한 명이 돈을 보내면 다른 한 명은 무조건 돈을 받아야 하고, 한 명이 돈을 보내지 않으면 다른 한 명은 무조건 돈을 받지 않는 상태만이 유효해야 한다. 즉, 위의 2개의 SQL문은 하나의 트랜잭션으로 취급하며, 모두..
시스템 카탈로그 데이터베이스의 객체(사용자, 릴레이션, 뷰, 인덱스, 권한 등)와 구조들에 관한 모든 데이터를 포함하는 것을 의미하며, 메타데이터(데이터에 관한 데이터의 의미)라고 한다. 사용자 및 질의 최적화 모듈 등 DBMS 자신의 구성 요소에 의해서 사용된다. 데이터 사전(Data dictionary) 또는 시스템 테이블 이라고도 부른다. 시스템 카탈로그 활용 - 질의 최적화 시스템 카탈로그의 사용 목적 중 하나로, DBMS가 질의를 수행하는 여러 가지 방법들 중에서 가장 비용이 적게 드는 방법을 찾는 과정을 질의 최적화라고 한다. 다음의 예시 질의를 보며 시스템 카탈로그가 어떻게 활용되는지 알아보자. SELECT EMPNAME, SALARY, SALARY*1.1 FROM EMPLOYEE WHERE..
뷰(VIEW) 뷰(VIEW)란, 간단히 말해 다른 릴레이션으로부터 유도된 릴레이션(Derived relation)이다. 같은 의미로 뷰는, 한 사용자의 전체 외부 뷰 대신에 하나의 가상 릴레이션(Virtual relation)을 의미한다. 기존의 기본 릴레이션(Base relation, 실제 릴레이션)에 대한 SELECT문 형태로 정의되며, 이는 뷰 = SELECT문 이라고 쉽게 이해할 수 있다. 뷰 정의 위에서 언급했듯, 뷰는 SELECT문 형태로 정의되며, 정의 방법은 다음과 같다. CREATE OR REPLACE VIEW 뷰 이름 [(애트리뷰트(들))] AS SELECT문 [WITH CHECH OPTION]; 뷰의 이름 다음에 애트리뷰트들을 생략하면, SELECT문의 SELECT절에 열거된 애트리뷰..