분류 전체보기(112)
-
[프로그래머스 - JAVA] 요격 시스템
문제 설명 A 나라가 B 나라를 침공하였습니다. B 나라의 대부분의 전략 자원은 아이기스 군사 기지에 집중되어 있기 때문에 A 나라는 B 나라의 아이기스 군사 기지에 융단폭격을 가했습니다. A 나라의 공격에 대항하여 아이기스 군사 기지에서는 무수히 쏟아지는 폭격 미사일들을 요격하려고 합니다. 이곳에는 백발백중을 자랑하는 요격 시스템이 있지만 운용 비용이 상당하기 때문에 미사일을 최소로 사용해서 모든 폭격 미사일을 요격하려 합니다. A 나라와 B 나라가 싸우고 있는 이 세계는 2 차원 공간으로 이루어져 있습니다. A 나라가 발사한 폭격 미사일은 x 축에 평행한 직선 형태의 모양이며 개구간을 나타내는 정수 쌍 (s, e) 형태로 표현됩니다. B 나라는 특정 x 좌표에서 y 축에 수평이 되도록 미사일을 발사하..
2023.12.20 -
[DB] 정규화
이상현상 잘못 설계된 테이블로 삽입, 삭제, 수정 같은 데이터 조작을 하면 이상현상이 일어난다. 이상현상이란 테이블에 튜플을 삽입할 때 부득이하게 NULL 값이 입력되거나, 삭제 시 연쇄삭제 현상이 발생하거나, 수정 시 데이터의 일관성이 훼손되는 현상을 말한다. 이상현상 개념 건물을 지을 때 설계가 잘못되면 건물에 균열이 생겨 이용이 불편하거나 심지어 건물이 붕괴될 수 있다. 그렇다면 데이터베이스의 설계가 잘못되면 어떤 문제가 발생할까? 데이터베이스 설계가 잘못되면 이상현상, 즉 SQL 문의 결과가 틀리거나 원하는 결과가 나오지 않는 등의 문제가 발생한다. 학생번호 학생이름 학과 주소 강좌이름 강의실 501 박지성 컴퓨터과 영국 맨체스타 데이터베이스 공학관 110 401 김연아 체육학과 대한민국 서울 데..
2023.12.19 -
[DB] 데이터 모델링
데이터 모델링 개념 데이터 모델링을 건축에 비유하면 지반 설계를 하는 것과 같다. 지반 설계가 잘못되면 건물을 아무리 튼튼하게 짓는다 해도 오래갈 수 없다. 소프트웨어 개발 또한 다 끝나갈 때쯤 데이터 모델링이 잘못됐다는 것을 발견하면 처음부터 다시 진행해야 한다. 발견하지 못하더라도 나중에 오류를 발견하게 되면 이것을 수습하는 비용 또한 많이 들 것이다. 잘못된 설계로 잦은 오류가 발생하는 프로그램은 사용자에게 신뢰를 잃고 있으나 마나 한 생각을 가지게 만들 것이다. 데이터 모델링은 현실 세계의 복잡한 개념을 단순화하고 추상화시켜 데이터베이스화하는 과정이다. 최종적으로 구축된 데이터베이스는 현실 세계의 대상이 되었던 개념과 일치한다. 데이터베이스 생명주기 데이터베이스는 최초 사용자의 요구에 의해 구축되..
2023.12.18 -
[프로그래머스 - JAVA] 실패율
문제 설명 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스테이지 차이가 너무 큰 것이 문제였다. 이 문제를 어떻게 할까 고민 한 그녀는 동적으로 게임 시간을 늘려서 난이도를 조절하기로 했다. 역시 슈퍼 개발자라 대부분의 로직은 쉽게 구현했지만, 실패율을 구하는 부분에서 위기에 빠지고 말았다. 오렐리를 위해 실패율을 구하는 코드를 완성하라. 실패율은 다음과 같이 정의한다. 전체 스테이지의 개수 N, 게임을 이용하는 사용자가 현재 멈춰있는 스테이지의 번호가 담긴 배열 stages가 매개변수로 주어질 때, 실패율이 높은 스테이지부터 내림차순으로 스테이지의 번호가 담겨있는 배열을 ..
2023.12.15 -
[DB] 인덱스
DBMS는 사용자가 만든 테이블을 저장 장치에 저장하고 필요에 따라 검색하여 결과를 보여준다. 그렇다면 DBMS는 데이터를 어떻게 저장하고 검색할까? 이 절에서는 DBMS에서 테이블이 저장되는 물리적인 구조와 함께 대부분의 관계 모델 데이터베이스가 사용하는 인덱스의 기본구조인 B-tree에 대해 알아보자. 데이터베이스의 물리적 저장 우리가 데이블을 생성하고 테이블에 데이터를 저장할 때 DBMS는 데이터를 어디에 어떻게 저장할까? 질문을 바꿔 워드프로세서로 작성한 문서를 어떻게 저장될까? 대부분 첫 번째 질문에 대해서는 선뜻 답하기 어려워도 두 번째 질문에는 쉽게 답할 수 있을 것이다. 워드프로세서로 작성한 문서는 파일 형태로 저장된다. 이 문서 파일은 워드프로세서만의 구조로 이루어져 있다. DBMS 역시..
2023.12.15 -
[DB] 무결성 제약조건
데이터베이스에 저장된 데이터는 결함이 없어야 하며 질의에 대해 신뢰성 있는 답을 제공해야 한다. 예를 들어 사람의 나이를 조회했을 때 200이 나오거나, 대학에서 수강인원이 40명인 과목에 41명이 수강신청이 되는 경우 등은 모두 무결성 제약조건을 위배한 것이다. 데이터를 저장하는데 있어서 데이터베이스는 일관성을 유지하고 중복을 제거하는 등 데이터의 신뢰도를 유지해야 한다. 따라서 데이터의 삽입, 삭제, 수정 시 여러 가지 제약조건이 따른다. 키 관계 데이터베이스에서 키는 릴레이션에서 특정 튜플을 식별할 때 사용하는 속성 혹은 속성의 집합이다. 릴레이션은 중복된 튜플을 허용하지 않기 때문에 각각의 튜플에 포함된 속성들 중 어느 하나이상 값이 달라야 한다. 이제 서점 데이터베이스 예제를 확인하며 키의 종류..
2023.12.14