본문 바로가기

분류 전체보기282

[고득점 Kit(해시)] 베스트앨범 (Swift, Python) 코딩테스트 연습 - 베스트앨범 스트리밍 사이트에서 장르 별로 가장 많이 재생된 노래를 두 개씩 모아 베스트 앨범을 출시하려 합니다. 노래는 고유 번호로 구분하며, 노래를 수록하는 기준은 다음과 같습니다. 속한 노래가 programmers.co.kr 풀이 두 개의 사전을 만들어 하나는 각 장르별 총 재생된 횟수를 담아두고 나머지 하나에는 각 장르별의 각 곡의 재생 횟수와 고유 번호를 담아두었다. 총 재생된 횟수를 담아놓은 사전을 정렬하여 많이 재생된 순으로 장르를 갖고 와서 해당 장르의 곡들중에서 가장 많이 재생된 곡을 2개 뽑아서 answer 배열에 담아준다. 코드 [Swift] import Foundation func solution(_ genres:[String], _ plays:[Int]) -> [.. 2022. 1. 26.
[DB] 데이터베이스의 INDEX 목차 인덱스란? 인덱스는 DBMS의 검색 성능을 높이기 위한 자료구조라고 할 수 있다. 인덱스가 필요한 이유 일반적으로 책을 보면 마지막에 색인이라고 되어 있는 부분이 있다. 우리는 이를 통해 내가 찾고 싶은 단어가 몇 페이지에 존재하는지를 쉽게 알 수 있다. 만약 색인이 없다면 우리는 원하는 단어를 찾기 위해 책을 처음부터 살펴보면서 해당 단어가 몇 페이지에 있는지를 찾아야만 한다. 데이터베이스의 인덱스는 책에 있는 색인과 유사하다. 데이터를 찾을 때 해당 데이터가 어디 위치에 있는지를 인덱스를 활용하면 빠르게 찾아낼 수 있다. 만약 인덱스를 사용하지 않는다면 테이블의 처음부터 끝까지 탐색하여 데이터를 찾아야 하는데 이를 전체 테이블 스캔(Full Table Scan)이라고 한다. 이는 튜플의 수가 많.. 2022. 1. 25.
[DB - 데이터베이스 개론] Chapter 07. 데이터베이스 언어 SQL 목차 01. SQL의 소개 SQL(Structured Query Language)은 관계 데이터베이스를 위한 표준 질의어로 많이 사용되는 언어이다. 사용자가 처리를 원하는 데이터가 무엇인지만 제시하고 데이터를 어떻게 처리해야 하는지를 언급할 필요가 없어 비절차적 데이터 언어의 특징을 띤다고 할 수 있다. SQL은 기능에 따라 데이터 정의어(DDL), 데이터 조작어(DML), 데이터 제어어(DCL)로 나눈다. 데이터 정의어 : 테이블을 생성하고 변경&제거하는 기능을 제공한다. 데이터 조작어 : 테이블에 새 데이터를 삽입하거나, 테이블에 저장된 데이터를 수정,삭제,검색하는 기능을 제공한다. 데이터 제어어 : 보안을 위해 데이터에 대한 접근 및 사용 권한을 사용자별로 부여하거나 취소하는 기능을 제공하는 언어다.. 2022. 1. 25.
[고득점 Kit(해시)] 위장 (Swift, Python) 코딩테스트 연습 - 위장 programmers.co.kr 풀이 옷의 종류를 key로 하고 해당 종류에 몇 가지 의상이 있는지를 담아주는 사전을 하나 만든다. 그 후 종류별로 갖고 있는 의상의 개수에 +1을 해주어 서로 곱해주어 조합할 수 있는 경우의 수를 구해주면 된다. +1은 해당 종류의 의상을 입지 않았을 때를 의미한다. 이렇게 구한 값에 -1을 해주어 리턴하면 되는데 이는 모든 종류의 의상을 입지 않았을 때의 경우의 수를 제거해주는 것이다. 코드 [Swift] import Foundation func solution(_ clothes:[[String]]) -> Int { var clothesDict: [String: Int] = [:] // 의상의 종류를 key로 하는 dictionary var a.. 2022. 1. 24.
[DB - 데이터베이스 개론] Chapter 06. 관계 데이터 연산 목차 01. 관계 데이터 연산의 개념 이번 장에서는 데이터 모델의 연산에 대해서 알아보자. 연산은 원하는 데이터를 얻기 위해 릴레이션에 필요한 처리 요구를 수행하는 것으로, 데이터베이스 시스템의 구성 요소 중 데이터 언어의 역할을 한다. 대표적인 관계 데이터 연산으로 관계 대수와 관계 해석이 있다. 관계 대수와 관계 해석은 원하는 데이터를 얻기 위한 처리 절차를 얼마나 자세히 기술하느냐에서 큰 차이를 보인다. 관계 대수(relational algebra) : 데이터의 처리 과정을 순서대로 기술하는 절차 언어(procedural language) 관계 해석(relational calculus) : 처리를 원하는 데이터가 무엇인지만 기술하는 비절차 언어(nonprocedural language) 데이터를 처.. 2022. 1. 23.
[고득점 Kit(해시)] 전화번호 목록 (Python) 코딩테스트 연습 - 전화번호 목록 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조 programmers.co.kr 풀이 입력받은 전화번호 목록을 먼저 정렬해주고 i-1번째 전화번호가 i번째 전화번호의 접두사인지를 체크해주면 된다. 코드 HTML 삽입 미리보기할 수 없는 소스 2022. 1. 22.