GitHub

https://github.com/Choidongjun0830

분류 전체보기 444

4.5 인덱스

'면접을 위한 CS 전공지식 노트' 책을 보며 공부한 내용입니다.인덱스의 필요성인덱스를 통해 빠르게 테이블에 있는 데이터를 찾기 가능하다. B-트리인덱스는 보통 B-트리라는 자료 구조로 이루어져 있다. 이는 루트 노드, 리프 노트, 브랜치 노드로 나뉜다.   인덱스가 효율적인 이유효율적인 단계를 거쳐 모든 요소에 접근할 수 있는 균현 잡힌 트리 구조와 트리 깊이의 대수 확장성 때문이다.대수 확장성트리 깊이가 리프 노드 수에 비해 매우 느리게 성장하는 것.기본적으로 인덱스가 한 깊이 증가할 때마다, 최대 인덱스 항목의 수는 4배씩 증가한다. 트리 깊이인덱스 항목 수364425651024640967163848653369262144101048576실제 인덱스는 이보다 더 효율적이다. 인덱스 만드는 방법DB마다..

CS 2024.09.27

[프로그래머스] Lv2. 숫자 변환하기 / DP 😑

숫자 변환하기문제 설명자연수 x를 y로 변환하려고 합니다. 사용할 수 있는 연산은 다음과 같습니다.x에 n을 더합니다x에 2를 곱합니다.x에 3을 곱합니다.자연수 x, y, n이 매개변수로 주어질 때, x를 y로 변환하기 위해 필요한 최소 연산 횟수를 return하도록 solution 함수를 완성해주세요. 이때 x를 y로 만들 수 없다면 -1을 return 해주세요.제한사항1 ≤ x ≤ y ≤ 1,000,0001 ≤ n 입출력 예xynresult1040521040301254-1입출력 예 설명입출력 예 #1x에 2를 2번 곱하면 40이 되고 이때가 최소 횟수입니다.입출력 예 #2x에 n인 30을 1번 더하면 40이 되고 이때가 최소 횟수입니다.입출력 예 #3x를 y로 변환할 수 없기 때문에 -1을 retu..

[프로그래머스] Lv2. 미로 탈출 / BFS

미로 탈출문제 설명1 x 1 크기의 칸들로 이루어진 직사각형 격자 형태의 미로에서 탈출하려고 합니다. 각 칸은 통로 또는 벽으로 구성되어 있으며, 벽으로 된 칸은 지나갈 수 없고 통로로 된 칸으로만 이동할 수 있습니다. 통로들 중 한 칸에는 미로를 빠져나가는 문이 있는데, 이 문은 레버를 당겨서만 열 수 있습니다. 레버 또한 통로들 중 한 칸에 있습니다. 따라서, 출발 지점에서 먼저 레버가 있는 칸으로 이동하여 레버를 당긴 후 미로를 빠져나가는 문이 있는 칸으로 이동하면 됩니다. 이때 아직 레버를 당기지 않았더라도 출구가 있는 칸을 지나갈 수 있습니다. 미로에서 한 칸을 이동하는데 1초가 걸린다고 할 때, 최대한 빠르게 미로를 빠져나가는데 걸리는 시간을 구하려 합니다.미로를 나타낸 문자열 배열 maps가..

4.4 데이터베이스의 종류

'면접을 위한 CS 전공지식 노트' 책을 보며 공부한 내용입니다. 관계형 데이터베이스RDBMS는 행과 열을 가지는 표 형식의 데이터를 저장한다.SQL이라는 언어를 써서 조작한다.예시) MySQL, PostgreSQL, 오라클, SQL Server, MSSQL관계형 데이터베이스의 경우 표준 SQL을 지키기는 하지만, 각각의 제품에 특화된 SQL을 사용한다. 오라클은 PL/SQL, MySQL은 SQLMySQL대부분의 OS와 호환된다. 현재 가장 많이 사용된다쓰레드 기반의 메모리 할당 시스템. 매우 빠른 조인, 최대 64개의 인덱스를 제공한다.대용량 DB를 위해서 설계되어 있고, 롤백, 커밋, 이중 암호 지원 보안 등의 기능을 제공한다.MySQL의 스토리지 엔진 아키텍쳐 DB의 심장과도 같은 역할을 하는게 스..

CS 2024.09.26

[프로그래머스] Lv2. 두 원 사이의 정수 쌍

두 원 사이의 정수 쌍문제 설명x축과 y축으로 이루어진 2차원 직교 좌표계에 중심이 원점인 서로 다른 크기의 원이 두 개 주어집니다. 반지름을 나타내는 두 정수 r1, r2가 매개변수로 주어질 때, 두 원 사이의 공간에 x좌표와 y좌표가 모두 정수인 점의 개수를 return하도록 solution 함수를 완성해주세요.※ 각 원 위의 점도 포함하여 셉니다.제한 사항1 ≤ r1 입출력 예r1r2result2320입출력 예 설명그림과 같이 정수 쌍으로 이루어진 점은 총 20개 입니다. 정답 풀이import mathdef solution(r1, r2): answer = 0 for x in range(1, r2 + 1): y_max = math.floor(math.sqrt(r2 **..

4.3 트랜잭션과 무결성

'면접을 위한 CS 전공지식 노트' 책을 보며 공부한 내용입니다.트랜잭션데이터베이스에서 하나의 논리적인 기능을 수행하기 위한 작업의 단위 => 데이터베이스에서 접근 방법은 쿼리 => 여러개의 쿼리들을 하나로 묶는 단위이에 대한 특징은 원자성, 일관성, 독립성, 지속성이 있다. 이를 한꺼번에 ACID라고 한다. 원자성(atomicity)트랜잭션과 관련된 일이 모두 수행되었거나 되지 않았거나를 보장ex) 트랜잭션을 커밋했는데, 문제가 발생하여 롤백하는 경우. 그 이후에 모두 수행되지 않음을 보장하는 것.트랜잭션 단위로 여러 로직들을 묶을 때 외부 API 호출이 있으면 안된다. 만약 있다면, 롤백이 일어났을 때 어떻게 할 것인지에 대한 해결 방법이 있어야 하고, 트랜잭션 전파를 신경써서 관리해야 한다.커밋과 ..

CS 2024.09.24

[프로그래머스] Lv1. 키패드 누르기 / 카카오 인턴

[카카오 인턴] 키패드 누르기문제 설명스마트폰 전화 키패드의 각 칸에 다음과 같이 숫자들이 적혀 있습니다.이 전화 키패드에서 왼손과 오른손의 엄지손가락만을 이용해서 숫자만을 입력하려고 합니다.맨 처음 왼손 엄지손가락은 * 키패드에 오른손 엄지손가락은 # 키패드 위치에서 시작하며, 엄지손가락을 사용하는 규칙은 다음과 같습니다.엄지손가락은 상하좌우 4가지 방향으로만 이동할 수 있으며 키패드 이동 한 칸은 거리로 1에 해당합니다.왼쪽 열의 3개의 숫자 1, 4, 7을 입력할 때는 왼손 엄지손가락을 사용합니다.오른쪽 열의 3개의 숫자 3, 6, 9를 입력할 때는 오른손 엄지손가락을 사용합니다.가운데 열의 4개의 숫자 2, 5, 8, 0을 입력할 때는 두 엄지손가락의 현재 키패드의 위치에서 더 가까운 엄지손가락을..

[프로그래머스] [PCCP 기출문제] 2번 / 석유 시추 🙁

[PCCP 기출문제] 2번 / 석유 시추문제 설명[본 문제는 정확성과 효율성 테스트 각각 점수가 있는 문제입니다.]세로길이가 n 가로길이가 m인 격자 모양의 땅 속에서 석유가 발견되었습니다. 석유는 여러 덩어리로 나누어 묻혀있습니다. 당신이 시추관을 수직으로 단 하나만 뚫을 수 있을 때, 가장 많은 석유를 뽑을 수 있는 시추관의 위치를 찾으려고 합니다. 시추관은 열 하나를 관통하는 형태여야 하며, 열과 열 사이에 시추관을 뚫을 수 없습니다.예를 들어 가로가 8, 세로가 5인 격자 모양의 땅 속에 위 그림처럼 석유가 발견되었다고 가정하겠습니다. 상, 하, 좌, 우로 연결된 석유는 하나의 덩어리이며, 석유 덩어리의 크기는 덩어리에 포함된 칸의 수입니다. 그림에서 석유 덩어리의 크기는 왼쪽부터 8, 7, 2입..

4.2 ER Diagram과 정규화 과정

'면접을 위한 CS 전공지식 노트' 책을 보며 공부한 내용입니다. ERD(Entity Relationship Diagram)은 DB를 구축할 때 가장 기초적인 뼈대 역할을 하며 릴레이션 간의 관계들을 정의한 것이다. 서비스를 구축할 때 가장 먼저 신경써야할 부분이다. ERD의 중요성ERD는 시스템의 요구사항을 기반으로 작성되며 이 ERDㄹ르 기반으로 DB를 구축한다. DB를 구축한 이후에도 디버깅 또는 비즈니스 프로세스 재설계가 필요한 경우에도 설계도 역할을 담당한다. 하지만, ERD는 관계형 구조로 표현할 수 있는 데이터를 구성하는데 유용할 수 있지만, 비정형 데이터를 충분히 표현하지 못한다. (비정형 데이터:  비구조화 데이터. 미리 정의된 데이터 모델이 없거나 미리 정의된 방식으로 정리되지 않은 정..

CS 2024.09.22

4.1 데이터베이스의 기본

'면접을 위한 CS 전공지식 노트' 책을 보며 공부한 내용입니다. 데이터베이스는 일정한 규칙 혹은 규약을 통해 구조화되어 저장되는 데이터의 모음이다. 데이터베이스를 제어, 관리하는 통합 시스템을 DBMS(DataBase Management System)이라 한다.특정 DBMS마다 정의된 쿼리 언어를 통해 삽입, 삭제, 수정, 조회 등을 수행할 수 있다. 또한, 데이터베이스는 실시간 접근과 동시 공유가 가능하다. 데이터베이스 위에 DBMS가 있고 그 위에 응용 프로그램이 있다.ex) MySQL이라는 DBMS가 있고, 그 위에 응용 프로그램에 속하는 Node.js나 php에서 MySQL의 DB의 데이터를 가져와 해당 데이터 관련 로직을 구축할 수 있다. 엔티티(Entity)사람, 장소, 물건 등 여러 개의 ..

CS 2024.09.20
728x90