#INFO 난이도 : SILVER5 문제유형 : 정렬 알고리즘 출처 : https://www.acmicpc.net/problem/2751 #SOLVE 제한시간이 2초이고, N이 최대 1,000,000 이기에 버블정렬 같은 O(N^) 이상의 시간복잡도가 걸리는 정렬 알고리즘을 사용하면 시간초과가 발생한다. 따라서 Intro Sort로 구현된 시간복잡도 O(Nlogn)을 가지는 C++ STL에서 제공하는 sort 함수를 사용했다. _About Sort Function #CODE #include #include using namespace std; int main(){ ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n; cin >> n; int arr[1000..
#INFO 난이도 : SILVER3 문제유형 : 소수 판별 알고리즘 출처 : https://www.acmicpc.net/problem/1929 #SOLVE 특정 다수의 소수를 판별하는 문제이기에, 에라토스테네스의 채를 이용해 문제를 풀이했다. _about EratosSieve int sieve[1000001] = {0, }; void eratos(int n, int m){ for(int i = 2; i
* 개인적인 공부 내용을 기록하는 용도로 작성한 글 이기에 잘못된 내용을 포함하고 있을 수 있습니다. * 지속적으로 내용을 수정해 나갈 예정입니다. _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..