본문 바로가기

분류 전체보기104

[알고리즘] 멱집합에 대해서 (DFS) 설명 앞선 게시물에서는 순열, 중복순열에서 다루었는데 멱집합과 유사하지만 멱집합은 다른 조건이 붙습니다. 순열, 중복순열의 출력값의 길이가 전부 동일하지만 멱집합은 그렇지 않다는 점이며, 선택의 유무가 자유롭습니다. 멱집합 S={a, b}라 하면, P(S)={ ∅, {a}, {b}, S } 이다. 원소의 개수가 n개인 집합의 부분집합의 개수는 2^n(2의 n승)개이므로, 멱집합의 원소의 개수 또한 2^n(2의 n승)개가 된다. 멱집합은 위상 공간 등의 개념에 사용된다. (n승 맥북으로 어떻게 쓰나요..ㅠ 알려주실분..) 어찌되었든 순열, 중복순열은 n의 r 승의 경우의 수가 나오는 반면에, 멱집합은 2의 n승의 경우의 수가 나온다. 여기서만 보아도 멱집합의 특징을 볼 수있다. 좀 더 작은 경우의 수가 나.. 2021. 7. 25.
[알고리즘] 중복순열, 순열에 대해서 (DFS) 순열 : 서로 다른 n 개 중 r 개를 골라 순서를 고려해 나열한 경우의 수. 순열의 개념은 굉장히 쉽습니다. n개에서 -1씩 빼서 r이 될 때까지 그 숫자를 나열해 곱해주면 그 경우의 수가 나온다. 결국 펙토리얼과 같은개념 입니다. nPn=n(n-1)(n-2)···2·1=n! 중복순열로 이어진다면 n의 r 제곱으로 이어 져서 nPr 로 표현이 가능할 것입니다. 수학적인 개념도 중요하지만 개념을 하는것과 코딩으로 풀어내는것은 좀 더 높은 수준을 요구 하는 것으로 저에겐 보여집니다. 배우는 것 보다 남에게 누구에게 가르친다는것은 더 많은 것을 알아야 하는 것 처럼 코딩 한다는 것은 어떠한 상황을 컴퓨터에게 가르쳐줘야 하는 것과 같기 때문에 코딩을 하는 것은 더 어려운 것 같습니다. 중복순열이 중복이 가능하.. 2021. 7. 25.
[DB] 설계 (Schema & Query Design) / SQL 함수, 실행순서 시작하기 앞서 Schema? 데이터베이스에서 데이터가 구성되는 방식과 서로 다른 엔티티 간의 관계에 대한 설명. 데이터베이스의 청사진. 쉽게 말해 데이터베이스에서 자료의 구조, 자료의 표현 방법, 자료 간의 관계를 형식 언어로 정의한 구조이다. https://dbdiagram.io/d/60fa52a9b7279e41233755ad 위 링크는 과제로 인스타 게시물에 의한 스키마디자인을 하였습니다. 인스타를 하는편이 아니어서 가볍게 했습니다. 스키마에 대해 이해에 도움이 되었으면 좋겠습니다. 과제로 스키마 디자인을 하면서 재미는 있었지만 업무라고 생각하면 스트레스 투성이일 것 같습니다. 1. 관계형 데이터베이스 구조화된 데이터는 하나의 테이블로 표현할 수 있습니다. 사전에 정의된 테이블을 relation 이라.. 2021. 7. 23.
[DB] DB / SQL, NoSQL 차이 / SQL 설치 및 명령어 1. 데이터베이스는 왜 필요한가? In-memory -> 보통은 컴퓨터를 끄면 데이터가 없어지거나, 데이터를 불러 올 수가 없습니다. File I/0 -> 필요한 데이터만 가져올 수 없고 항상 파일(모든데이터)을 가져온 뒤 서버에서 필터링 필요합니다. 이러한 문제를 해결하기 위해 데이터 베이스가 존재합니다. Database 필터링 외에도 File I/O 로구현이 힘든 관리를 위한 여러기능들을 가지고 있는 데이터에 특화된 서버 필터링을 하기 위해 쿼리 (SELECT, FROM, WHERE 등등..)가 존재 합니다. 데이터 베이스가 존재 함으로써 간략하게 아래와 같이 동작 할 수 있습니다. 클라이언트 - "어떤 목록" 보여줘 서버 - 데이터 베이스에서 "어떤 목록"을 보기위한 쿼리문을 보냄 데이터베이스 - .. 2021. 7. 22.
[알고리즘] 소수 판별식 (에라토스테네스의 체) 1. num 사이의 숫자를 모두 나눠서 확인하는 방법 function isPrime(num) { for(let i = 2; num > i; i++) { if(num % i === 0) { return false; } } return num > 1; } 2. num 제곱근 까지만 확인 하는 방법 function isPrime(num) { let sqrt = parseInt(Math.sqrt(num)); // num에 제곱근 후 소수점 버림 if (num === 1) { return false; } if (num === 2) { return true; } if (num % 2 === 0) { return false; } // 1, 2에 대한 경우의 수와 2의 배수는 미리 걸러냄 for (let i = 3; .. 2021. 7. 21.
[알고리즘] Algorithm with Math / 정규표현식 컴퓨터가 단순하게 연산하기 때문에, 기본적인 컴퓨터 과학과 수학은 통하는 부분이 있습니다. 그러므로 수학을 학습하는 것은 프로그래밍의 기본을 탄탄히 하는 일입니다. 그러므로 수학은 프로그래밍에 많은 도움이 됩니다. 알고리즘 파트에서 다루는 수학은 중학교 수준의 수학입니다. 알고리즘 테스트(코딩 테스트)를 해결하는데 필요한 최소한의 수학을 다룹니다. 프로그래밍을 위한 최소한의 수학이기 때문에 학습해야만 하는 내용입니다. 알고리즘 문제에서 자주 다루는 최소한의 수학만 익혀, 적재적소에 활용할 수 있는 능력을 기르는 것이 가장 큰 목표입니다. 최근 코딩 테스트에 등장하는 알고리즘 문제는 단순히 "너 이 알고리즘 알아?"라고 물어보지 않습니다. 요즘 출제되는 문제는 "특정 방법을 사용해서 풀어 볼래?"라고 물어.. 2021. 7. 21.