누적합
-
[백준 10986] 나머지 합 - javascript,node.js,구간합,누적합알고리즘/코딩 테스트 2023. 2. 13. 14:59
문제링크 : https://www.acmicpc.net/problem/10986 10986번: 나머지 합 수 N개 A1, A2, ..., AN이 주어진다. 이때, 연속된 부분 구간의 합이 M으로 나누어 떨어지는 구간의 개수를 구하는 프로그램을 작성하시오. 즉, Ai + ... + Aj (i ≤ j) 의 합이 M으로 나누어 떨어지는 (i, j) www.acmicpc.net 알고리즘 : 1. n개의 수를 누적합을 저장한다. 2. 아래 구간합의 나머지 수학 공식을 알아야 한다. - 즉 총합의 나머지가 0과 같아야 한다 했으니 결국 좌변의 합에 % m을 한 것과 우번의 합에 % m을 한것이 같아야 한다. 3. 조합을 이용한다. 즉 다른 n개 중 순서 상관없이 r개를 뽑는다. n!/(n-r)!r! 즉 하나의 식으..
-
[백준 16139] 인간-컴퓨터 상호작용 - 누적합, javascript,node.js알고리즘/코딩 테스트 2023. 2. 13. 13:42
문제: https://www.acmicpc.net/problem/16139 16139번: 인간-컴퓨터 상호작용 첫 줄에 문자열 $S$가 주어진다. 문자열의 길이는 $200,000$자 이하이며 알파벳 소문자로만 구성되었다. 두 번째 줄에는 질문의 수 $q$가 주어지며, 문제의 수는 $1\leq q\leq 200,000$을 만족한다. 세 번째 www.acmicpc.net 알고리즘 : 1. 특정 알파벳 마다 누적합의 개수를 저장하기 위해 map을 이용한다. - map을 사용하지 않고 일일이 누적합을 구할 시 50점을 받게 된다. 2. 누적합의 개수를 구할 때는 map.get을 이용한다. 전체코드 const filePath = require('path').join(__dirname, '/test.txt'); c..
-
[코딩 테스트] 누적합 - 프로그래머스 최솟값 만들기알고리즘/코딩 테스트 2023. 1. 27. 15:03
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 최솟값 만들기 문제 설명 길이가 같은 배열 A, B 두개가 있습니다. 각 배열은 자연수로 이루어져 있습니다. 배열 A, B에서 각각 한 개의 숫자를 뽑아 두 수를 곱합니다. 이러한 과정을 배열의 길이만큼 반복하며, 두 수를 곱한 값을 누적하여 더합니다. 이때 최종적으로 누적된 값이 최소가 되도록 만드는 것이 목표입니다. (단, 각 배열에서 k번째 숫자를 뽑았다면 다음에 k번째 숫자는 다시 뽑을 수 없습니다.) 더보기 잘못된 풀이 1. A는 오름차순, B는 내림차순 정렬하여 하나씩 곱함 틀린 이유!! arr.s..
-
[코딩 테스트] 누적합 - 백준 11659 구간 합 구하기 4, 2559 수열, 10986 나머지합알고리즘/코딩 테스트 2023. 1. 27. 14:09
1. 11659 구간 합 구하기 4 수 N개가 주어졌을 때, i번째 수부터 j번째 수까지 합을 구하는 프로그램을 작성하시오. const fs = require('fs'); const path = require('path'); const filePath = process.platform === 'linux' ? '/dev/stdin' : path.join(__dirname, '/구간합.txt'); const input = fs.readFileSync(filePath).toString().trim().split('\n'); //N : arr length M: 횟수 const [N,M] = input[0].split(' ').map(v => +v); const arr = input[1].split(' ').m..
-
[알고리즘] 데이터 구조, 자료 구조 분류, 알고리즘, 성능 분석, 누적합알고리즘 2023. 1. 25. 16:43
자료구조 : '데이터의 저장'을 담당하는 것을 말한다. 분류 선형 구조 ) 리스트 , 큐, 스택 비선형 구조 ) 그래프, 트리 파일 구조 ) 순차 파일, 색인 파일, 직접파일 단순 구조 ) 정수, 실수, 문자, 문자열 알고리즘 : 표현 및 저장된 데이터를 대상으로 하는 '문제 해결 방법'을 말한다. 성능 분석 2가지 방법 1. 시간 복잡도 : 최적의 시간 주로 빅 O을 이용한다. (빅 오메가도 있다.) O(1) < O(logn) < O(n) < O(nlogn) < O (n**2) < O(n**3) < O(2**n) 참고로 log 밑에 숨겨진 숫자는 10이다. 2. 공간 복잡도 : 메모리 분량 누적합 강의 두 개를 듣고 정리한 알고리즘이다. 1. 큰돌 누적합을 이용하면 O(n**n)이 아닌 O(n)의 시간..