* 개인적인 공부 내용을 기록하는 용도로 작성한 글 이기에 잘못된 내용을 포함하고 있을 수 있습니다. * 지속적으로 내용을 수정해 나갈 예정입니다. _contents #1 Path Module이란? #2 Path 모듈 사용법 #2.1 __filename & __dirname #2.2 path.sep & path.delimiter #2.3 path.join #1 Path Module이란? path 모듈은 Node.js에서 폴더와 파일의 경로를 쉽게 조작하도록 제공하는 모듈이다. path 모듈이 필요한 이유 중 하나는 운영체제별로 경로 구분자가 다르기 때문이다. 운영체제의 경로는 크게 Window Type 과 Unix Type(MAC & LINUX)으로 나뉜다. Window Type : C:\Users\No..
#INFO 난이도 : SIVLER5 문제유형 : 소수 판별 알고리즘 출처 : https://www.acmicpc.net/problem/1978 #SOLVE 단순히 소수를 판별할 수 있는가에 대한 문제였다. 다양한 방식으로 문제를 풀이할 수 있지만, 1과 자신을 제외한 수 (즉, n - 1) 까지 반복문을 돌려 자기 자신과 나누어 나머지가 존재하는 지 판별하는 방식으로 문제를 풀이하였다. 만약 나머지가 존재한다면 소수가 아니기에 false를 리턴한다. 단, 소수 판별 시 2 ~ n -1 까지의 수는 대칭을 이루기에 math.h 헤더의 sqrt 함수를 사용해 제곱근 까지만 탐색을 수행하였다. bool isPrime(int n){ if(n < 2) return false; for(int i = 2; i t; ..
#INFO 난이도 : SILVER2 문제유형 : 재귀 , DP 출처 : https://www.acmicpc.net/problem/9184 #SOLVE 문제에서 주어진 코드대로 재귀함수를 작성하면 시간초과가 발생한다. 따라서 메모이제이션(Memoization)이라는 기법을 사용해야 한다. 메모이제이션이란, 컴퓨터 프로그램이 동일한 계산을 반복해야 할 때, 이전에 계산한 값을 메모리에 저장함으로 동일한 계산의 반복 수행을 제거하는 방식의 알고리즘 기법이다. _about Memoization 우선 문제에서 base condition (모든 재귀의 수렴 조건)을 제시해 주었기에 그대로 작성한다. int recur_w(int a, int b, int c){ // base condition if(a 20) retu..
#INFO 난이도 : SILVER3 문제유형 : 브루트포스 알고리즘 출처 : https://www.acmicpc.net/problem/1436 #SOLVE 모든 경우의 수를 탐색하는 브루트포스 방식으로 문제를 풀이하였다. 탐색을 수행할 숫자(cnt)를 to_string 함수를 이용해 문자열 타입으로 바꿔준 뒤, find 함수를 사용해 cnt 내부에 연속된 666이 존재하는지 탐색한다. string str = to_string(cnt); // cnt에서 연속된 666을 탐색한 경우 if(str.find("666") != -1){ a++; } #CODE #include #include // to_string, find using namespace std; void solve(int n){ ios::sync_..
* 개인적인 공부 내용을 기록하는 용도로 작성한 글 이기에 잘못된 내용을 포함하고 있을 수 있습니다. * 지속적으로 내용을 수정해 나갈 예정입니다. _reference https://developer.mozilla.org/ko/docs/Web/HTTP/Messageshttps://developer.mozilla.org/ko/docs/Web/HTTP/Messages 인프런 - 모든 개발자를 위한 HTTP 웹 기본 지식 (김영한 강사님) _contents #1 HTTP란? #2 HTTP Message Structure #3 HTTP Response & Request Message #1 HTTP란? HTTP(HyperText Transfer Protocol)란 HTML 문서를 전송하기 위해 고안된 프로토콜(규..