분류 전체보기

    프로그래머스 - KAKAO 성격 유형 검사하기 [파이썬]

    2022 KAKAO 테크 인턴십 코딩테스트 문제 - 성격 유형 검사하기 / 파이썬 문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/118666 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 일반적인 구현 문제. 하지만 레벨 1 치고는 읽어야하는 문제의 길이가 길다. 최근 MBTI 검사를 겨냥한(?) 문제로 최신 트렌드를 잘 반영해주는 것 같았다. 정답 코드 : from collections import defaultdict def change(problem, score): # 지표, 점..

    백준 11053번 - 가장 긴 증가하는 부분 수열 [파이썬]

    문제 링크 : https://www.acmicpc.net/problem/11053 11053번: 가장 긴 증가하는 부분 수열 수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50} 이 www.acmicpc.net 기본적인 LIS 문제이다. 따라서 DP 로 접근할 수 있다 # 코드 import sys n = int(sys.stdin.readline()) seq = list(map(int, sys.stdin.readline().split())) dp = [1 for _ in range(n + 1)] for i in r..

    데이터중심 애플리케이션 설계 - 3장 [저장소와 검색] 리뷰 - 3 : 트랜잭션 처리 / 분석

    트랜잭션 처리나 분석 데이터베이스를 트랜잭션 처리 뿐만이 아니라 데이터 분석에도 점점 더 사용하기 시작 OLTP (Online Transcation Processing) / OLAP (Online Analytic Processing) 초반에는 트랜잭션 처리와 분석 질의를 위해 동일한 데이터베이스를 사용 OLTP 시스템을 분석 목적으로 사용하지 않고 개별 데이터 베이스에서 분석을 수행하려 함 이 개별 데이터베이스를 데이터 웨어하우스라고 부름 데이터 웨어하우징 OLTP 시스템 사업 운영에 대단히 중요 - 일반적으로 높은 가용성 / 낮은 지연시간의 트랜잭션 처리를 기대 이 때문에 비즈니스 분석가가 OLTP 데이터베이스에 즉석 분석 질의(ad hoc anaytic query)를 실행하는 것을 꺼려함 데이터 웨어..

    백준 2193번 - 이친수[파이썬]

    문제 링크 : https://www.acmicpc.net/problem/2193 2193번: 이친수 0과 1로만 이루어진 수를 이진수라 한다. 이러한 이진수 중 특별한 성질을 갖는 것들이 있는데, 이들을 이친수(pinary number)라 한다. 이친수는 다음의 성질을 만족한다. 이친수는 0으로 시작하지 않 www.acmicpc.net 아주 기본적인 DP 문제다. # 문제 설명 0과 1로만 이루어진 수를 이진수라 한다. 이러한 이진수 중 특별한 성질을 갖는 것들이 있는데, 이들을 이친수(pinary number)라 한다. 이친수는 다음의 성질을 만족한다. 이친수는 0으로 시작하지 않는다. 이친수에서는 1이 두 번 연속으로 나타나지 않는다. 즉, 11을 부분 문자열로 갖지 않는다. 예를 들면 1, 10, ..

    프로그래머스 - 구명보트 [파이썬]

    문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/42885 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 무인도에 갇힌 사람들을 구명보트를 이용하여 구출하려고 합니다. 구명보트는 작아서 한 번에 최대 2명씩 밖에 탈 수 없고, 무게 제한도 있습니다. 예를 들어, 사람들의 몸무게가 [70kg, 50kg, 80kg, 50kg]이고 구명보트의 무게 제한이 100kg이라면 2번째 사람과 4번째 사람은 같이 탈 수 있지만 1번째 사람과 3번째 사람의 무게의 합은 150kg이므로 구명보..

    데이터중심 애플리케이션 설계 - 3장 [저장소와 검색] 리뷰 - 2

    B Tree (B 트리) 가장 널리 사용되는 인덱스 구조 ( RDB / NoSQL) SS 테이블과 동일하게 K-V 정렬 유지 (키 - 값 검색 / 범위 쿼리 효율적) 기본 구조 4KB 내외 크기의 고정 크기 페이지(블록)로 나누고 한 번에 하나의 페이지에 읽기 또는 쓰기 (디스크는 고정 크기 블록으로 배열되기 때문) 각 페이지는 주소나 위치를 이용해 식별 가능 -> 해당 방식으로 하나의 페이지가 다른 페이지를 참조 가능 B tree 구조에는 하나의 루트 페이지 존재 (색인에서 키를 찾기 위해서는 루트에서부터 시작) 페이지는 여러 키와 하위 페이지 참조를 포함 최종적으로는 리프 페이지를 포함하는 페이지에 도달 분기 계수 : 한 페이지에서 하위 페이지를 참조하는 수 (페이지 참조와 범위 경계를 저장할 공간의..

    데이터중심 애플리케이션 설계 - 3장 [저장소와 검색] 리뷰 - 1

    3장을 읽으며 발췌 및 정리하면 좋을 내용들에 대해서만 정리하였다. DB의 작업 data 저장 data 요청시, 제공 개발자가 DB 내 저장 및 검색 처리 방법을 주의해야 하는 이유 : - 처음부터 저장소 엔진을 구현하는 것이 아닌, 사용 가능한 여러 저장소 엔진 중 가장 적합한 엔진을 선택해야 하기 때문 ex_ transaction 작업 부하에 맞추어 최적화된 저장소 엔진과 분석을 위해 최적화된 엔진 간의 차이는 크다. 로그 구조 계열 저장소 엔진(Log-structured) - ex) B-tree 페이지 지향 계열 저장소 엔진(Page-Oriented) DB 를 강력하게 만드는 데이터 구조 일반적으로 많은 DB는 내부적으로 추가 전용(append-only) 데이터 파일인 로그(log)를 사용 로그 -..

    데이터중심 애플리케이션 설계 - 2장 [데이터 모델과 질의 언어]

    데이터 모델과 질의 언어 데이터 모델 소프트웨어 개발에서 제일 중요한 부분 SW가 어떻게 작성되었는지, 해결하려는 문제를 어껗게 생각해야하는 지에 대한 영향 대부분의 어플리케이션 : 하나의 데이터 모델을 다른 데이터 모델 위에 계층을 둬서 생성 각 계층의 핵심적인 문제 : 하위 계층 관점에서 데이터 모델을 표현하는 방법 ex: 개발자는 현실을 통해 객체/자료구조/데이터 구조를 다루는 API를 모델링 -> 이러한 구조는 어플리케이션에 특화 데이터 구조 저장 : JSON, XML, RDB Table, Graph Model과 같은 범용 데이터 모델로 표현 각 계층은 명확한 데이터 모델을 제공하여 하위 계층의 복잡성을 숨긴다. 추상화 다양한 데이터 모델 -> 각 데이터 모델은 사용 방법에 대한 가정을 나타낸다...