본문 바로가기

기타 알고리즘

(4)
통계학 https://www.acmicpc.net/problem/2108 2108번: 통계학 첫째 줄에 수의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 단, N은 홀수이다. 그 다음 N개의 줄에는 정수들이 주어진다. 입력되는 정수의 절댓값은 4,000을 넘지 않는다. www.acmicpc.net 최빈값을 어떻게 구할 것인가? 정수의 절대값이 4000을 넘지 않는다. 그럼 count[8001]을 만들고 음수가 나오면 +4000을 하면 되겠다! 최빈값이 여러 개 일 수도 있으므로 check를 사용 반올림을 해주는 함수 -> round 함수 #include 나누기를 할 떄는 double 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26..
나머지 합 https://www.acmicpc.net/problem/10986 10986번: 나머지 합 수 N개 A1, A2, ..., AN이 주어진다. 이때, 연속된 부분 구간의 합이 M으로 나누어 떨어지는 구간의 개수를 구하는 프로그램을 작성하시오. 즉, Ai + ... + Aj (i ≤ j) 의 합이 M으로 나누어 떨어지는 (i, j) www.acmicpc.net 연속된 부분의 합이 M으로 나누어 떨어지는 구간의 개수를 구하는 문제 나머지 연산 (A - B) % C = ((A % C) - (B % C)) % C와 같다 즉, 구간 합 배열의 원소를 m으로 나눈 나머지로 업데이트하고 s[i]와 s[j]가 같은 쌍을 찾자. 그럼 (s[j] - s[i]) % m은 0이다. 그럼 원본 배열에서 i + 1부터 j까지의 ..
구간 합 구하기 https://www.acmicpc.net/problem/11659 11659번: 구간 합 구하기 4 첫째 줄에 수의 개수 N과 합을 구해야 하는 횟수 M이 주어진다. 둘째 줄에는 N개의 수가 주어진다. 수는 1,000보다 작거나 같은 자연수이다. 셋째 줄부터 M개의 줄에는 합을 구해야 하는 구간 i와 j www.acmicpc.net 수 n개가 주어졌을 떄 i번째 수에서 j번째 수까지의 합을 구하기. 매번 계산을 하면 시간 초과가 나게된다. 구간 합을 사용해야한다. S[i] = S[i - 1] + A[i] 구간 합 공식 S[end] - S[start - 1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 #..
팬그램 https://www.acmicpc.net/problem/5704 5704번: 팬그램 입력은 여러 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 많아야 200글자로 이루어져 있는 문장이다. 단어는 공백 하나로 구분되어 있다. 또, 단어는 알파벳 소문자로만 이루어져 있다. www.acmicpc.net 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 #include #include #include using namespace std; int main() { string a; while (1) { int x[26]; for ..