🍋 ⚾️ 💻 🎬 🎮

2025/03 27

[Algorithm] 선택 정렬 (Selection Sort)

선택 정렬 (Selection Sort)선택 정렬은 배열을 순회하면서 배열의 앞에서부터 차례대로 각 인덱스에 들어갈 값을 선택해 위치시키며 정렬하는 알고리즘   작동 방식인덱스 i에 들어갈 값은 인덱스 i부터 N(마지막 인덱스)까지 중 최소값이 된다.예시배열 [5, 3, 8, 1, 2]가 있을 때 다음과 같은 과정으로 정렬된다.5 3 8 1 21 3 8 5 21 2 8 5 31 2 3 5 81 2 3 5 8시간 복잡도 : O(n^2)        * (n-1) + (n-2) + ... + 2 + 1 = n(n-1) / 2   def selection_sort(arr): for i in range(len(arr)): min_idx = i for j in range(i+1, l..

Tech/Algorithm 2025.03.17

[Algorithm] 버블 정렬 (Bubble Sort)

버블 정렬 (Bubble Sort)버블 정렬은 선택 정렬과 유사한 알고리즘으로 서로 인접한 두 원소의 대소를 비교하고, 조건에 맞지 않다면 자리를 교환하며 정렬하는 알고리즘. 버블 정렬하면 배열의 뒤에서부터 정렬된다.배열의 첫 번째 요소부터 n번째 요소까지 오름차순으로 버블 정렬을 수행하면 해당 범위의 최댓값이 n번째에 위치하게 된다.  배열의 n번째 요소를 정렬하는데 n-1번을 비교하므로 배열의 모든 요소를 정렬하려면 (n-1) + (n-2) + ... + 2 + 1 = n(n-1) / 2 만큼 연산을 수행한다. 시간 복잡도 : O(n^2)  def bubble_sort(arr): for i in range(len(arr)): for j in range(len(arr) - i - 1)..

Tech/Algorithm 2025.03.17

[LeetCode] 550. Game Play Analysis IV (AGGREGATE)

🗂️  문제[SQL50] 550. Game Play Analysis IV (AGGREGATE)✍🏻  풀이 문제 해석유저가 첫 로그인한 다음날 다시 로그인한 비율을 구하는 문제 📌  Table : ActivityColumn NameType설명player_idint유저의 고유 IDdevice_idint유저가 로그인한 장치의 IDevent_datedate로그인 날짜games_playedint해당 로그인 동안 플레이한 게임 수 (0일 수도 있음) PRIMARY KEY  :  (player_id, event_date)한 유저(player_id)가 같은 날(event_date)에 여러 번 로그인한 기록은 없다. 📌  요구 사항각 유저의 첫 로그인 날짜(first_login)를 찾는다.첫 로그인 날짜의 다음날..

[DB] 04. 정규화 (Normalization) - (1) 이상 현상 (Anomaly)

이상 현상 (Anomaly) 이상 현상이란?이상 현상은 불필요한 데이터 중복으로 인해 Relation에서 데이터를 삽입, 수정, 삭제할 때 발생하는 부작용을 의미한다.  이상 현상의 종류삽입 이상 (Insertion Anomaly)새로운 데이터를 추가하려면 불필요한 데이터까지 함께 삽입해야 하는 문제갱신 이상 (Update Anomaly)중복된 튜플 중 일부만 수정하면 데이터 불일치가 발생하는 문제삭제 이상 (Delete Anomaly)특정 데이터를 삭제할 때 필요한 정보까지 함께 삭제되는 문제  📎  삽입 이상 (Insertion Anomaly)새로운 데이터를 삽입하려면 관계없는 정보도 함께 입력해야 하는 문제불필요한 데이터가 강제로 포함되므로 데이터 정합성 유지가 어려움  📎  갱신 이상 (Upd..

CS/Database 2025.03.14

[DB] 03. 데이터 모델링 (Data Modeling) - (4) 논리적 설계

1. 논리적 모델 ER 다이어그램으로 표현된 개념적 구조를 데이터베이스에 저장할 형태로 표현한 논리적 구조  예) 데이터베이스의 논리적 구조 = 데이터베이스 스키마(schema) 개체-관계 (Entity-Relationship) 모델데이터와 관계를 개념적으로 표현하는 모델로, ER 다이어그램을 사용하여 시각화한다.계층적 (Hierarchical) 데이터 모델트리 구조로 데이터를 조직하며, 부모-자식 관계를 통해 상위 데이터에서 하위 데이터를 탐색하는 방식이다.네트워크 (Network) 데이터 모델개체 간 다대다 관계를 허용하며, Owner-Member 구조를 통해 관계를 명시적으로 정의한다.관계형 (Relational) 데이터 모델데이터를 테이블(릴레이션) 형태로 저장하며, 강력한 수학적 기반(집합론, ..

CS/Database 2025.03.14

[DB] 03. 데이터 모델링 (Data Modeling) - (3) 개념적 설계

1. ER 모델링 (Entity-Relationship Modeling)ER 모델은 개체(Entity)와 관계(Relationship)로 현실 세계의 개념 구조를 표현한다.  ER 다이어그램 (ER Diagram) :개체(Entity), 속성(Attribute), 관계(Relationship)을 시각적으로 표현한 모델개체는 사각형, 관계는 마름모, 속성은 타원으로 표시    2. ER 모델 주요 개념 1 ) 개체 (Entity)조직 운영에 필수적인 사람, 개념, 사물과 같이 구별되는 모든 것각 객체만의 고유한 특성이나 상태, 즉 속성을 하나 이상 보유예) 서점 : 고개, 책 / 학교 : 학과, 과목ER 다이어그램에서 사각형으로 표현  2 ) 속성 (Attribute)개체 또는 관계가 가지고 있는 고유의 ..

CS/Database 2025.03.14

[DB] 03. 데이터 모델링 (Data Modeling) - (2) 요구 사항 분석

요구 사항 분석 목적 :사용자 요구 사항을 수집 및 분석하여 데이터베이스의 용도를 정의한다.업무에 필요한 데이터와 그 처리 방법을 고려한다.  결과물 :요구 사항 명세서  주요 작업 :데이터베이스를 사용할 주요 사용자 범위 결정사용자 업무 분석면담, 설문 조사, 업무 관련 문서 분석 등의 방법으로 요구 사항 수집수집된 요구 사항에 대한 분석 결과를 요구 사항 명세서로 작성

CS/Database 2025.03.14

[DB] 03. 데이터 모델링 (Data Modeling) - (1) 데이터 모델

데이터 모델링 데이터 모델링은 현실 세계의 데이터를 데이터베이스로 변환하는 과정으로, 개념적 설계와 논리적 설계가 핵심적인 역할을 한다.  데이터 모델링 개요 현실 세계의 요구 사항을 분석하고 이를 데이터베이스에 적합한 형태로 표현하는 과정개념적 모델링 (Conceptual Modeling)    :    현실 세계의 주요 데이터를 추출하여 개념적 구조로 정리논리적 모델링 (Logical Modeling)           :    개념적 구조를 데이터베이스에 적합한 논리적 구조로 변환  데이터 모델 (Data Model) 데이터 모델링의 결과물로, 데이터를 표현하는 일종의 틀 개념적 모델 (Conceptual Model)    :   현실 세계를 개념적으로 모델링하여 데이터베이스의 개념적 구조로 표현한..

CS/Database 2025.03.14

[Android Studio] 디데이 앱 개발

카페에서 친구와 얘기를 하다가 "벌써 2025년 3월이라니"라는 말과 함께 뜬금없이 앱 위젯으로 대화 주제가 넘어갔다.  디데이 앱에 올해 마지막 날을 저장해두고 올해의 남은 기간을 확인하는데, 어플에서 남은 일정까지의 기간을 퍼센트나 프로그레스바처럼 진행률을 직관적으로 볼 수 있으면 좋겠다는 생각이 들었다. 어플을 찾아봤지만 원하는 기능이 있는 어플은 딱히 보이지 않았다.  집에 돌아와서 '이번 기회에 내가 한번 만들어볼까...?' 하는 생각에 호기롭게 디데이 앱 개발을 시작하게 되었다... ㅎ     앱개발에 대한 기본적인 지식도 없이 무작정 무지성으로 시작했기에, 잘못 구현한 부분이 많을 것 같다. 기능도 디자인도 많이 미흡하지만 구상한 기능을 구현해서 실행되는 것을 목표로 했다. 무엇보다 은근 재..

Tech/Project 2025.03.13

[DB] 02. 데이터베이스 시스템 - 2

2.  데이터베이스 관리 시스템 (Database Management System, DBMS) DBMS 란?파일 시스템의 문제를 해결하기 위해 제시된 소프트웨어로, 조직에서 필요한 데이터를 통합하여 저장 및 관리  DBMS의 주요 기능기능설명데이터 정의 (Definition)데이터 구조 정의 및 삭제, 변경 가능데이터 조작 (Manipulation)데이터를 삽입, 수정, 삭제하는 기능데이터 검색 (Retrieve)사용자가 원하는 데이터를 조회하는 기능데이터 제어 (Control)접근 제어, 백업 및 복구, 동시성 제어 기능  DBMS의 장단점장점  👍🏻데이터 중복 최소화데이터 독립성 확보동시 접근 가능보안 강화데이터 무결성 유지표준화 가능장애 발생 시 복구 가능응용 프로그램 개발 비용 절감단점  👎..

CS/Database 2025.03.12
728x90
반응형