알고리즘/Javascript 문제
-
소수 (Prime) - JavaScript알고리즘/Javascript 문제 2025. 4. 1. 01:26
코딩테스트 스터디에 들어갔다. 문제를 자주 푸는 습관을 만들어갈 수 있을 것 같다. 오늘은 JS를 활용해서 주어지는 두 수 사이의 소수를 구하는 함수를 이해한 바를 정리하고,백준 문제 1929번에 제출한 답안 기록한다. 소수 (Prime Number) 소수는 1보다 큰 자연수 중에서 1과 자기 자신만을 약수로 가지는 수를 의미한다.그렇기 때문에 아래와 같은 특징들을 갖는다.소수는 항상 두 개의 약수(1과 자신)만을 가진다.2를 제외하고는 모든 소수는 홀수이다.소수의 자연수 내에서 규칙적으로 나타나지 않으며, 분포가 불규칙적이고 개수는 무한하다.JS 구현입력값을 정렬하여 역순 입력도 대응 가능하다.소수를 판별하는 함수인 isPrime을 분리하여 구현하였다.범위 내 각 숫자에 대해 소수를 판별하여 배열에 저..
-
순열, 조합, 팩토리얼 - JavaScript알고리즘/Javascript 문제 2025. 3. 13. 21:59
알고리즘 문제를 풀때 재귀적으로 모든 경우의 수에 대해 접근할 때가 있다.이때 응용할 수 있는 기본적인 팩토리얼, 조합, 순열의 JavaScript 코드를 기록하고 공유한다.1. 팩토리얼 (Factorial)[네이버 사전]1 부터 n 개의 양의 정수를 모두 곱한 것을 n 계승(factorial)이라고 하고, n! 로 나타낸다.즉, n! = 1 x 2 x 3 x ... x (n-1) x n 이다.n! = n x (n-1)! 의 성질에서 n이 1일 때, 1 = 1 x 0!이 되므로 0! = 1로 약속한다. JS 구현재귀함수를 이해하는데 가장 기본적인 예제라고 할 수 있다.재귀함수와 반복문을 사용한 두 가지 방법으로 구현해 볼 수 있다.다음에 구현할 순열과 조합에서는 재귀함수를 사용하므로 재귀함수를 더 눈여겨..
-
[Softeer] Lv.2 바이러스 - JavaScript알고리즘/Javascript 문제 2025. 2. 27. 17:33
1. 문제N초 후 P배씩 증가하는 K마리의 바이러스의 수를 구하는 문제 2. 해설매우 큰 수에 대한 반복문과 BigInt 자료형을 알고 있는지 점검하는 문제(일반 원시 자료형으로 계산하면 틀린다.)입력값을 받아 처음부터 BigInt 자료형으로 변환하여 정밀도 손실 없이 정확한 계산을 수행해야 한다.Number 타입을 사용하는 경우 큰 수의 곱셈에서 오버플로우와 정밀도 손실 문제가 발생할 수 있다. 3. 해답const [k, p, n] = require('fs').readFileSync('/dev/stdin', 'utf8').trim().split(' ').map(e => BigInt(e));let tmp = k;for (let i = 0; i 4. 문제 출처https://softeer.ai/practi..
-
[Softeer] Lv.2 연탄의 크기 - JavaScript알고리즘/Javascript 문제 2025. 2. 27. 16:49
1. 문제(Lv.2) 연탄을 사용할 수 있는 집의 최대 수 구하기 2. 해설최대 나눌 수 있는 수 찾기- 2 ~ 100까지의 수로 input 요소들이 나누어지는 검사- input 배열의 요소 radius가 2 ~ 100 사이의 숫자 i로 나누어 떨어지면, count 값을 1 증가- 만약 count > maxCount 이라면, maxCount를 업데이트- 모든 for문에 끝난 이후 결과값 maxCount를 출력 3. 해답const fs = require('fs');const [n, data] = fs.readFileSync('/dev/stdin', 'utf8').trim().split('\n');const input = data.split(' ').map(Number);let maxAvail = 0;for..