전체 글
-
[Algorithm] - 부분합Algorithm/Algorithm 2022. 9. 24. 00:39
부분 합 부분 합이란? 흔히 부분합 알고리즘은 시작점 S 부터 끝점 E까지의 모든 합을 구하는 문제입니다. 하지만, 주어진 시간내에 주어지는 모든 범위의 부분합을 구하기 위해선, 일일이 다 더해주는 것은 비효율적인 일입니다. 임의의 배열을 만들어, 일일히 더하는 것이 아닌 모든 동작을 한번에 하도록 처리하여 주는 것이 주요 목표입니다. O(N) -> O(1) 아이디어 index 2~4까지의 값을 구하려고 합니다. 이 때 부분합은 arr[2]+arr[3]+arr[4]라고 할 수도 있지만, sum[5]-sum[2]와도 같습니다. 만약 부분적으로 특정 값을 빼고 넣어준다고 하여 봅시다. [4,4,4,4,4] 라는 배열에서 1부터 마지막 index까지 6을 추가 2부터 3까지 index만 5를 추가한다고 해봅시..
-
[프로그래머스] - 파괴되지 않은 건물Algorithm/프로그래머스 2022. 9. 24. 00:20
문제 [프로그래머스] - 파괴되지 않은 건물 https://school.programmers.co.kr/learn/courses/30/lessons/92344 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 이해 더보기 문제 설명 문제 설명 [본 문제는 정확성과 효율성 테스트 각각 점수가 있는 문제입니다.] N x M 크기의 행렬 모양의 게임 맵이 있습니다. 이 맵에는 내구도를 가진 건물이 각 칸마다 하나씩 있습니다. 적은 이 건물들을 공격하여 파괴하려고 합니다. 건물은 적의 공격을 받으면 내구도가 감소하고 내구도가 0이하가 되면 파괴됩니다. 반대로,..
-
[Database] - JoinCS/면접준비 2022. 9. 21. 02:05
Join 두 개 이상의 테이블을 서로 연결하여 데이터를 검색할 때 사용하는 방법 RDBMS에서 서로 연결되어 있는 테이블들을 원하는 조건으로 조회하기 위한 방법 Inner Join 두 테이블의 교집합, 즉 두 테이블간 JOIN 조건을 만족하는 행을 반환한다. Left Outer Join 조인 조건에서 동일한 값이 없는 행도 반환할 때 사용한다. Right Outer Join OUTER JOIN이란 조인 조건에서 동일한 값이 없는 행도 반환할 때 사용한다. Full Outer Join LEFT OUTER JOIN과 RIGHT OUTER JOIN을 합친 것으로, 양쪽 모두 조건이 일치하지 않는 것들까지 모두 결합하여 출력한다. Cross Join Cartesian Product(카디션 곱)이라고도 하며 조인..
-
[프로그래머스] - 풍선 터트리기Algorithm/프로그래머스 2022. 9. 21. 01:54
문제 [프로그래머스] - 풍선 터트리기 https://school.programmers.co.kr/learn/courses/30/lessons/68646 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 이해 더보기 문제 설명 일렬로 나열된 n개의 풍선이 있습니다. 모든 풍선에는 서로 다른 숫자가 써져 있습니다. 당신은 다음 과정을 반복하면서 풍선들을 단 1개만 남을 때까지 계속 터트리려고 합니다. 임의의 인접한 두 풍선을 고른 뒤, 두 풍선 중 하나를 터트립니다. 터진 풍선으로 인해 풍선들 사이에 빈 공간이 생겼다면, 빈 공간이 없도록 풍선들을 중앙으..
-
[Database] - KeyCS/면접준비 2022. 9. 20. 01:45
Key 키(Key)는 데이터베이스에서 조건에 만족하는 튜플을 찾거나 순서대로 정렬할 때 다른 튜플들과 구별할 수 있는 유일한 기준이 되는 Attribute(속성)입니다. Candidate Key 튜플을 유일하게 식별할 수 있는 속성들의 부분집합을 의미합니다. 모든 릴레이션은 반드시 하나 이상의 후보키를 가져야합니다. Primary Key 기본키는 후보키 중에서 특별히 선정된 키로 중복된 값을 가질 수 없다.(Atomic) 유일성과 최소성을 가지며 튜플을 식별하기 위해 반드시 필요한 키이다. NULL 값이 있어서도 안된다. ( 무결성 ) Alternative Key 후보키가 둘 이상일 때 기본키를 제외한 나머지 후보키들을 말합니다. Super key 모든 튜플에 대해 유일성은 만족하지만, 최소성은 만족시키..
-
캐시 메모리CS/면접준비 2022. 9. 20. 01:37
캐시 메모리 속도가 빠른 장치와 느린 장치에서 속도 차이에 따른 병목 현상을 줄이기 위한 메모리를 말한다. 코어 마다 독립된 L1캐시를 가진다. L1 = Cpu 내부 L2 = Cpu - main memory L3 = Mainboard 지역성 데이터에 대한 접근이 시간적 혹은 공간적으로 가깝게 발생하는 것을 말한다. 캐시의 적중률(Hit rate)을 극대화하여 캐시가 효율적으로 동작하기 위해 사용되는 성질이다. 시간 지역성 최근에 사용했던 데이터가 재참조될 가능성이 높은 특성 반복문에서 조건 변수처럼 한번 된 사용된 변수는 잠시 후 다시 참조될 가능성이 높다. 공간 지역성 최근에 사용했던 데이터가 재참조될 가능성이 높은 특성 List와 같이 연속된 접근 시, 참조된 근처 데이터와 연결될 가능성이 높다. 캐..
-
Data Lake / Warehouse / MartCS/DB 2022. 9. 19. 18:05
Data Lake 정형 데이터와 비정형 데이터를 모두 볼륨에 저장할 수 있는 중앙 리포지토리입니다 데이터는 일반적으로 먼저 처리되거나 구조화되지 않은 원시 형식으로 저장됩니다 데이터 스트림이 처리되고 도착하는 즉시 분석에 사용할 수 있는 네이티브 스트리밍을 지원합니다. 데이터 레이크는 데이터 스트림이 처리되고 도착하는 즉시 분석에 사용할 수 있는 기본 스트리밍을 지원합니다. E.g) Kafka, Hadoop, Spark Data Warehouse 모든 데이터를 함께 가져와 구조화된 방식으로 저장합니다. 일반적으로 이기종 소스의 데이터를 연결하고 분석하는 데 사용됩니다. 고성능 SQL(Structured Query Language) 작업을 지원하기 위해 데이터 구조에 의존합니다. 데이터를 저장하기 전에 사..
-
[Python] - Cyclic reference개발/Python 2022. 9. 19. 01:47
Python은 Garbage Collection 관리 시 Reference를 Counting하는 방식 우선시하여 메모리를 다룹니다. 이 떄 발생하는 문제점인 Cyclic reference를 다루어보겠습니다. 순환 참조 ( Cyclic reference ) 직관적이며, Object를 카운터하며 0이 되면 Object를 삭제하는 식으로 GC(reference counting)가 동작한다. 해결 할 수 없는 한가지 경우가 생기는데, 두 객체가 서로를 참조하게 되는 경우에서 하나를 삭제하더라도 나머지 Object의 Count는 1개 이기 때문에 Object는 삭제 할 수 없습니다. 예시 my_dict1 = {} my_dict2 = {} my_dict1['dict2'] = my_dict2 my_dict2['dic..