분류 전체보기(196)
-
알고리즘 기초 - 골드바흐의 추측 (백준 6588)
문제 1742년, 독일의 아마추어 수학가 크리스티안 골드바흐는 레온하르트 오일러에게 다음과 같은 추측을 제안하는 편지를 보냈다. 4보다 큰 모든 짝수는 두 홀수 소수의 합으로 나타낼 수 있다. 예를 들어 8은 3 + 5로 나타낼 수 있고, 3과 5는 모두 홀수인 소수이다. 또, 20 = 3 + 17 = 7 + 13, 42 = 5 + 37 = 11 + 31 = 13 + 29 = 19 + 23 이다. 이 추측은 아직도 해결되지 않은 문제이다. 백만 이하의 모든 짝수에 대해서, 이 추측을 검증하는 프로그램을 작성하시오. 입력 입력은 하나 또는 그 이상의 테스트 케이스로 이루어져 있다. 테스트 케이스의 개수는 100,000개를 넘지 않는다. 각 테스트 케이스는 짝수 정수 n 하나로 이루어져 있다. (6 ≤ n ..
2024.03.18 -
최대 공약수, 최소 공배수, 소수 판별
알고리즘 해결을 위한 기본 정수론 코드이다. 여기서 시간 뺏기지말고 외우고 있자. // 최대 공약수 function gcd(a, b) { if (a === 0) return b; return gcd(b % a, a); } // 최소 공배수 function lcm(a, b) { return (a * b) / gcd(a, b); } // 소수 판별 function solve(n) { if (n
2024.03.18 -
알고리즘 기초 - 문자열 분석 (백준 10820)
문제 문자열 N개가 주어진다. 이때, 문자열에 포함되어 있는 소문자, 대문자, 숫자, 공백의 개수를 구하는 프로그램을 작성하시오. 각 문자열은 알파벳 소문자, 대문자, 숫자, 공백으로만 이루어져 있다. 입력 첫째 줄부터 N번째 줄까지 문자열이 주어진다. (1 ≤ N ≤ 100) 문자열의 길이는 100을 넘지 않는다. 출력 첫째 줄부터 N번째 줄까지 각각의 문자열에 대해서 소문자, 대문자, 숫자, 공백의 개수를 공백으로 구분해 출력한다. 예제 입력 1 This is String SPACE 1 SPACE S a M p L e I n P u T 0L1A2S3T4L5I6N7E8 예제 출력 1 10 2 0 2 0 10 1 8 5 6 0 16 0 8 9 0 카운팅 배열을 만들어서 해결하면 된다. let input ..
2024.03.18 -
알고리즘 기초 - 후위 표기식2 (백준 1935)
문제 후위 표기식과 각 피연산자에 대응하는 값들이 주어져 있을 때, 그 식을 계산하는 프로그램을 작성하시오. 입력 첫째 줄에 피연산자의 개수(1 ≤ N ≤ 26) 가 주어진다. 그리고 둘째 줄에는 후위 표기식이 주어진다. (여기서 피연산자는 A~Z의 영대문자이며, A부터 순서대로 N개의 영대문자만이 사용되며, 길이는 100을 넘지 않는다) 그리고 셋째 줄부터 N+2번째 줄까지는 각 피연산자에 대응하는 값이 주어진다. 3번째 줄에는 A에 해당하는 값, 4번째 줄에는 B에 해당하는값 , 5번째 줄에는 C ...이 주어진다, 그리고 피연산자에 대응 하는 값은 100보다 작거나 같은 자연수이다. 후위 표기식을 앞에서부터 계산했을 때, 식의 결과와 중간 결과가 -20억보다 크거나 같고, 20억보다 작거나 같은 입..
2024.03.17 -
알고리즘 기초 - 오등큰수 (백준 17299)
문제 크기가 N인 수열 A = A1, A2, ..., AN이 있다. 수열의 각 원소 Ai에 대해서 오등큰수 NGF(i)를 구하려고 한다. Ai가 수열 A에서 등장한 횟수를 F(Ai)라고 했을 때, Ai의 오등큰수는 오른쪽에 있으면서 수열 A에서 등장한 횟수가 F(Ai)보다 큰 수 중에서 가장 왼쪽에 있는 수를 의미한다. 그러한 수가 없는 경우에 오등큰수는 -1이다. 예를 들어, A = [1, 1, 2, 3, 4, 2, 1]인 경우 F(1) = 3, F(2) = 2, F(3) = 1, F(4) = 1이다. A1의 오른쪽에 있으면서 등장한 횟수가 3보다 큰 수는 없기 때문에, NGF(1) = -1이다. A3의 경우에는 A7이 오른쪽에 있으면서 F(A3=2) < F(A7=1) 이기 때문에, NGF(3) = 1..
2024.03.17 -
map, filter, reduce
map 아래와 같이 상품 정보들이 주어진다. const products = [ { name: '반팔티', price: 15000 }, { name: '긴팔티', price: 20000 }, { name: '핸드폰케이스', price: 15000 }, { name: '후드티', price: 30000 }, { name: '바지', price: 25000 }, ]; name끼리 price끼리 각 속성을 분리해서 따로 모으고 싶다. for ... of 구문을 사용해서 다음과 같이 구현할 수 있다. const products = [ { name: '반팔티', price: 15000 }, { name: '긴팔티', price: 20000 }, { name: '핸드폰케이스', price: 15000 }, { nam..
2024.03.11