정규화란? 데이터베이스 정규화는 데이터베이스 내의 데이터 구조를 조직화하고 최적화하는 과정이다. 정규화를 하는 목적은 데이터 중복을 제거하고, 효율성을 향상시키며, 데이터 무결성을 보장하기 위함이다. 데이터 정규화에는 다음과 같이 여러 단계가 있다. 제1 정규화 (1NF) 제2 정규화 (2NF) 제3 정규화 (3NF) 이상 종류 이상 종류란 정규화를 거치지 않은 데이터에서 발생할 수 있는 현상을 말한다. 삽입 이상 (Insertion Anomaly) : 데이터 삽입 시 의도와 다른 값들도 삽입 삭제 이상 (Delete Anomaly) : 데이터 삭제 시 의도와 다른 값들도 연쇄 삭제 갱신 이상 (Update Anomaly) : 속성값 갱신 시 일부 튜플만 갱신되어 모순 발생 제1 정규화 (1NF) 데이터..
Ajax와 Axios는 웹 개발에서 비동기 통신으로 데이터를 주고받기 위해 사용되는 기술들이다. 이 두 기술들에 대해 혼동이와서 어떤 차이점이 있는지 정리해보려 한다. 비동기 통신에 대해 쉽게 이해하고 싶다면 아래 링크를 참고하면 도움이 된다. 동기와 비동기의 개념 및 차이에 대해 쉽게 알아보자. 동기(Synchronous) 방식 동기란, 말 그대로 동시에 일어난다는 뜻입니다. 요청을 하면 동시에 응답을 한다는 약속으로, 바로 요청을 하면 시간이 얼마가 걸리던지 요청한 자리에서 응답(결과)가 주 hstory0208.tistory.com Ajax (Asynchronous JavaScript and XML) Ajax는 약자 그대로 JavaScript, XMLHttpRequest 객체를 사용하여 웹 브라우저와..
문제 설명 입출력 예제 풀이 코드 연속된 소수의 합을 구하기 위해서는 에라토스테네스의 체를 이용해 N까지의 소수를 구하고, 구한 소수 배열을 바탕으로 투 포인터를 활용해 연속된 소수의 합이 N이 되는지를 확인하여 정답을 구할 수 있다. 에라토스테네스의 체와 투 포인터에 대한 설명은 아래 링크에서 참고할 수 있다. [알고리즘] 투 포인터(Two Pointers)란? 투 포인터(Two Pointers) 투 포인터는 말 그대로 두 개의 포인터를 사용하여 문자열, 배열, List에서 원하는 값을 찾는 것 입니다. 투 포인터를 활용하기 위한 조건은 주어진 배열에서 연속된(정렬이 hstory0208.tistory.com [Java/자바] 프로그래머스 - 소수 찾기 (에라토스테네스의 체) 문제 설명 1부터 입력받은 ..
문제 설명 입출력 예제 1806번: 부분합 첫째 줄에 N (10 ≤ N < 100,000)과 S (0 < S ≤ 100,000,000)가 주어진다. 둘째 줄에는 수열이 주어진다. 수열의 각 원소는 공백으로 구분되어져 있으며, 10,000이하의 자연수이다. www.acmicpc.net 풀이 코드 배열에서 특정한 합을 갖는 부분 연속 수열을 찾는 것은 투 포인터 알고리즘을 활용하는 대표적인 예이다. 투포인터 알고리즘에 대한 설명은 아래 링크를 통해 확인 할 수 있다. [알고리즘] 투 포인터(Two Pointers)란? 투 포인터(Two Pointers) 투 포인터는 말 그대로 두 개의 포인터를 사용하여 문자열, 배열, List에서 원하는 값을 찾는 것 입니다. 투 포인터를 활용하기 위한 조건은 주어진 배열에..
문제 설명 1920번: 수 찾기 첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1 ≤ M ≤ 100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들 www.acmicpc.net 풀이 코드 이 문제의 주어지는 입력값의 허용 범위를 보면 100,000으로 시간복잡도OlogN 이나 O(n)으로 풀어야 한다. 그리고 모든 정수의 범위를 보면 -2^31 보다 크거나 같고 2^31보다 작다고 한다. 정수의 범위가 크기 때문에 OlogN의 시간복잡도를 갖는 이분탐색으로 이 문제를 해결하였다. 이분탐색 알고리즘에 대해 알고 싶다면 아래 링크를 참고하길 바란다. [알고리즘] Binary Sea..
문제 설명 입출력 예제 11559번: Puyo Puyo 총 12개의 줄에 필드의 정보가 주어지며, 각 줄에는 6개의 문자가 있다. 이때 .은 빈공간이고 .이 아닌것은 각각의 색깔의 뿌요를 나타낸다. R은 빨강, G는 초록, B는 파랑, P는 보라, Y는 노랑이다. www.acmicpc.net 풀이 코드 bfs 알고리즘 문제 분류에 있는 문제였지만 구현에 가까운 문제였다. 구현문제 답게 문제의 요구사항에 맞게 구현하여 풀 수 있었다. 이 문제에서 필요한 기능은 상하좌우 동일한 블록 탐색, 블록 제거, 블록 떨어트리기 총 3가지로 해당 기능들을 메서드로 뽑아 코드를 작성했다. 아래의 코드 주석을 통해 문제를 쉽게 이해할 수 있을 것이라고 생각한다. 정답 코드 from collections import deq..