Category 📙
-
- [확률과 통계] 베이즈 정리베이즈 정리 확률이 0이 아닌 사건들 $A_{1}, A_{2}, \cdots, A_{n}$ 이 어떤 사건 `B` 의 발생에 원인이 된다고 하자. 이 때, 주어진 사건 $A_{i}, \; i = 1, 2, \cdots, n$ 의 조건부 확률을 이용하여 사건 `B` 가 발생할 확률을 구할 수 있다. 또한 사건 `B` 가 발생했을 때, 사건 `B` 의 발생 요인들 중에서 어느 특정한 요인이 작용할 확률을 구할 수 있다. 전확률 공식(Formula of Total Probability) 확률이 0이 아닌 사건 $A_{1}, A_{2}, \cdots, A_{n}$ 을 표본 공간 `S` 의 분할이라 하면, 임의의 사건 `B` 의 확률은 다음과 같다. $$P(B) = \sum_{i=1}^{n}P(A_{i})P(B|A..
2022.10.31 -
- [확률과 통계] 조건부 확률조건부 확률 어떤 제한된 조건 아래에서 확률을 계산해야 할 경우가 있다. 예) 내일 비가 오든지 그렇지 않든지 관계 없이 모레 비가 올 확률을 구하는 경우와 내일 비가 온다는 전제 조건 아래에서 모레 비가 올 확률은 다르게 나타난다. 조건부 확률의 정의 통계학 교과목을 수강하는 50명의 학생이 아래와 같이 구성되었을 때, 담당 교수가 이 학생들 중에서 임의로 선정한 학생이 2학년 남학생일 확률을 구한다고 하자. 구분 1학년 2학년 3학년 합계 남학생 22 6 3 32 여학생 13 4 2 16 합계 35 10 5 50 이 확률을 구하기 위해 선정된 학생이 남학생인 사건을 `A`, 선정된 학생이 2학년인 사건을 `B` 라고 하면 다음을 얻을 수있다. $$P(A) = \frac{32}{50}, \quad P(..
2022.10.31 -
- [확률과 통계] 확률확률 확률의 의미 동전 하나를 던져서 앞면이 나올 가능성을 알아보자. 동전을 던져서 나올 수 있는 모든 경우는 앞면(`H`)과 뒷면(`T`) 뿐이다. 동전을 던지는 실험에서 표본 공간은 $S = \{ H, T \}$ 이고, 앞면이 나오는 사건은 $A = \{ H \}$ 로 나타낼 수 있다. 이 때, `H` 와 `T` 가 모두 같은 정도로 나온다고 가정하면 사건 `A` 가 일어날 가능성은 $\frac{1}{2}$ 라고 추측할 수 있다. 그리고 이러한 추측에는 동전이 공정하다는 전제 조건(앞면과 뒷면이 나올 가능성이 동등하다)이 필요하다. 그러면 사건 `A` 가 일어날 가능성인 숫자 $\frac{1}{2}$ 에 대해, 분모의 숫자 2는 표본 공간 안의 원소의 개수이고, 분자의 숫자 1은 사건 `A` 안에 있..
2022.10.31 -
- [확률과 통계] 시행과 사건시행과 사건 동전 던지기나 주사위 던지기 등과 같은 어떤 통계적 실험을 실시할 때 나타날 수 있는 모든 경우에 대해, 특정한 실험 결과로 구성된 집합을 사건이라고 한다. 따라서 확률론에서 사용하는 용어인 사건은 집합의 개념과 동일하다. 시행(Trial) 동일한 조건 아래서 반복할 수 있으며, 그 결과가 우연에 의해 달라질 수 있는 실험 또는 관찰 동전을 던져서 앞면이 나오면 `H`, 뒷면이 나오면 `T`라고 할 때, 동전을 두 번 반복하여 던진다면 나올 수 있는 모든 경우는 $\{ HH, HT, TH, TT \}$ 뿐이다. 그리고 주사위를 한 번 던진다면 나올 수 있는 모든 경우는 $1, 2, 3, 4, 5, 6$ 뿐이다. 이와 같이 동일한 조건 아래에서 동전이나 주사위를 몇 번이고 반복하여 던질 수 있..
2022.10.31 -
- [이산 수학] 합성 관계합성 관계 2개 이상의 관계를 이용해 새로운 관계를 만드는 것을 '관계를 합성한다'고 하고, 이렇게 만든 관계를 합성 관계라고 한다. 합성 관계(Composite Relation : $S \circ R$) 집합 `A` 에서 집합 `B` 로의 관계 `R` 과 집합 `B` 에서 집합 `C` 로의 관계 `S` 가 있을 때, 이 두 관계를 이용해 구하는 집합 `A` 에서 집합 `C` 로의 관계 $$S \circ R = \{(a, c) ∈ A \times C \; | \; a ∈ A, \; b ∈ B, \; c ∈ C, \; (a, b) ∈ R, \; (b, c) ∈ S \}$$ 합성 관계를 구하려면 둘 이상의 관계 사이에 공통으로 사용되는 자료 집합이 있어야 한다. 예 수강과목 담당교수 정보 학번 과목코드 교수..
2022.10.31 -
- [이산 수학] 관계의 성질관계의 성질 하나의 집합에 대한 관계의 경우, 순서쌍 원소의 구성에 따라 관계의 성질을 판별할 수 있다. 관계의 성질에는 반사, 비반사, 대칭, 반대칭, 추이 5가지가 있다. 반사 관계와 비반사 관계 반사 관계(Reflexive Relation) 집합 `A` 에 대한 관계 `R` 이 있을 때, 모든 $a ∈ A$ 에 대해 $(a, a) ∈ R$ 인 관계 ($Δ_{A} = \{ (a, a) \; | \; a ∈ A \}$) 비반사 관계(Irreflexive Relation) 집합 `A` 에 대한 관계 `R` 이 있을 때, 모든 $a ∈ A$ 에 대해 $(a, a) \not ∈ R$ 인 관계 집합 `A` 에 대한 관계 `R` 이 반사 관계이려면, 집합 `A` 에 포함되는 모든 원소 `a` 에 대해 자기 자신..
1 2022.10.31 -
- [BOJ-11651][C++] 좌표 정렬하기 2문제 2차원 평면 위의 점 N개가 주어진다. 좌표를 y좌표가 증가하는 순으로, y좌표가 같으면 x좌표가 증가하는 순서로 정렬한 다음 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 `x_{i}`와 `y_{i}`가 주어진다. (-100,000 ≤ `x_{i}`, `y_{i}` ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. 출력 첫째 줄부터 N개의 줄에 점을 정렬한 결과를 출력한다. 예제 입력 1 5 0 4 1 2 1 -1 2 2 3 3 예제 출력 1 1 -1 1 2 2 2 3 3 0 4 알고리즘 분류 정렬 문제 출처 https://www.acmicpc.net/problem/11651..
2022.10.30 -
- [이산 수학] 관계의 표현관계의 표현 관계는 일반적으로 순서쌍의 집합으로 표현하지만, 이 외에도 화살표 선도, 좌표 도표, 관계 행렬, 방향 그래프 등 여러 가지 방식으로 표현할 수 있다. 화살표 선도를 이용한 관계 표기 화살표 선도(Arrow Diagram) 집합 `A` 에서 집합 `B` 로 가는 관계 `R` 이 있을 때, 두 집합의 원소 간의 관계를 화살표로 나타낸 도표 화살표 선도에서 화살표의 방향은 관계에 포함되는 순서쌍의 앞에 오는 원소에서 시작하여 뒤에 오는 원소로 향하도록 한다. 역관계의 경우, 관계 `R` 의 화살표 선도와 화살표 방향이 반대이다. 좌표 도표를 이용한 관계 표기 좌표 도표(Coordinate Diagram) 집합 `A` 에서 집합 `B` 로 가는 관계 `R` 이 있을 때, 집합 `A` (정의역)의 ..
2022.10.29 -
- [이산 수학] 관계의 개념관계의 개념 인공지능은 데이터베이스에 저장된 지식을 활용하여 새로운 지식을 생성하거나 문제를 해결한다. 데이터베이스는 자료를 효율적으로 처리할 수 있도록 관련 있는 자료를 중복 없이 통합한 집합으로, 구조화된 자료 형태이다. 이처럼 구조화된 자료에 의미 있는 관계를 부여하면 새로운 정보를 만들 수 있고, 같은 자료 사이의 관계라고 하더라도 부여된 관계에 따라 전혀 다른 정보가 될 수 있다. 그러므로 데이터베이스에 저장된 자료 자체뿐 아니라 그 자료 사이의 관계는 인공지능이 지식을 생성하고 판단하는데 큰 영향을 미친다. 다음과 같은 자료 집합이 존재하고, 각 집합에 포함된 자료는 오류와 중복이 없어 정보를 제공하는 데 충분하다고 가정하자. 위 그림처럼 자료 집합을 개별적인 정보만으로 구성한다면 학생, 전공..
2022.10.29 -
- [BOJ-11650][C++] 좌표 정렬하기문제 2차원 평면 위의 점 N개가 주어진다. 좌표를 x좌표가 증가하는 순으로, x좌표가 같으면 y좌표가 증가하는 순서로 정렬한 다음 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 `x_{i}`와 `y_{i}`가 주어진다. (-100,000 ≤ `x_{i}`, `y_{i}` ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. 출력 첫째 줄부터 N개의 줄에 점을 정렬한 결과를 출력한다. 예제 입력 1 5 3 4 1 1 1 -1 2 2 3 3 예제 출력 1 1 -1 1 1 2 2 3 3 3 4 알고리즘 분류 정렬 문제 출처 https://www.acmicpc.net/problem/11650..
2022.10.29 -
- [C++] sort 함수를 이용하여 오름차순/내림차순 정렬하는 방법sort 함수를 이용하여 오름차순/내림차순 정렬하는 방법 sort() 함수배열 등 컨테이너들의 요소를 정렬하는 함수보통 array나 vector를 정렬할 때 쓰인다. 필요한 헤더 헤더를 불러와야 사용할 수 있다.#include 기본 포맷default (1)template void sort (RandomAccessIterator first, RandomAccessIterator last);custom (2)template void sort (RandomAccessIterator first, RandomAccessIterator last, Compare comp);기본적으로 이터레이터 범위와 Compare 파라미터를 통해 콜백 함수(Callback Function)를 선택적으로 처리할 수 있..
2022.10.27 -
- [BOJ-1427][C++] 소트인사이드문제 배열을 정렬하는 것은 쉽다. 수가 주어지면, 그 수의 각 자리수를 내림차순으로 정렬해보자. 입력 첫째 줄에 정렬하려고 하는 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다. 출력 첫째 줄에 자리수를 내림차순으로 정렬한 수를 출력한다. 예제 입력 1 2143 예제 출력 1 4321 예제 입력 2 999998999 예제 출력 2 999999998 예제 입력 3 61423 예제 출력 3 64321 예제 입력 4 500613009 예제 출력 4 965310000 알고리즘 분류 문자열 정렬 문제 출처 https://www.acmicpc.net/problem/1427 1427번: 소트인사이드 첫째 줄에 정렬하려고 하는 수 N이 주어진다. N은 1,000,000,000보다 작거나 같..
2022.10.27 -
- [BOJ-2108][C++] 통계학시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 2 초 256 MB 114349 24868 20070 25.402% 문제 수를 처리하는 것은 통계학에서 상당히 중요한 일이다. 통계학에서 N개의 수를 대표하는 기본 통계값에는 다음과 같은 것들이 있다. 단, N은 홀수라고 가정하자. 산술평균 : N개의 수들의 합을 N으로 나눈 값 중앙값 : N개의 수들을 증가하는 순서로 나열했을 경우 그 중앙에 위치하는 값 최빈값 : N개의 수들 중 가장 많이 나타나는 값 범위 : N개의 수들 중 최댓값과 최솟값의 차이 N개의 수가 주어졌을 때, 네 가지 기본 통계값을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 수의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 단, N은 홀수이다. 그 다음 N개의 줄에는 ..
2022.10.27 -
- [BOJ-10989][C++] 수 정렬하기 3시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 5 초 8 MB 197399 45716 34498 23.464% 문제 N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오. 입력 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다. 출력 첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다. 예제 입력 1 10 5 2 3 1 4 2 3 5 1 7 예제 출력 1 1 1 2 2 3 3 4 5 5 7 알고리즘 분류 정렬 시간 제한 Java 8: 3 초 Java 8 (OpenJDK): 3 초 Java 11: 3 초 Kotlin (JVM): 3 초 J..
2022.10.27 -
- [BOJ-2559][C++] 수열문제 매일 아침 9시에 학교에서 측정한 온도가 어떤 정수의 수열로 주어졌을 때, 연속적인 며칠 동안의 온도의 합이 가장 큰 값을 알아보고자 한다. 예를 들어, 아래와 같이 10일 간의 온도가 주어졌을 때, 3 -2 -4 -9 0 3 7 13 8 -3 모든 연속적인 이틀간의 온도의 합은 아래와 같다. 이때, 온도의 합이 가장 큰 값은 21이다. 또 다른 예로 위와 같은 온도가 주어졌을 때, 모든 연속적인 5일 간의 온도의 합은 아래와 같으며, 이때, 온도의 합이 가장 큰 값은 31이다. 매일 측정한 온도가 정수의 수열로 주어졌을 때, 연속적인 며칠 동안의 온도의 합이 가장 큰 값을 계산하는 프로그램을 작성하시오. 입력 첫째 줄에는 두 개의 정수 N과 K가 한 개의 공백을 사이에 두고 순서대로 주어진다. 첫..
2022.10.26 -
- [BOJ-11659] 구간 합 구하기 4문제 수 N개가 주어졌을 때, i번째 수부터 j번째 수까지 합을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 수의 개수 N과 합을 구해야 하는 횟수 M이 주어진다. 둘째 줄에는 N개의 수가 주어진다. 수는 1,000보다 작거나 같은 자연수이다. 셋째 줄부터 M개의 줄에는 합을 구해야 하는 구간 i와 j가 주어진다. 출력 총 M개의 줄에 입력으로 주어진 i번째 수부터 j번째 수까지 합을 출력한다. 제한 1 ≤ N ≤ 100,000 1 ≤ M ≤ 100,000 1 ≤ i ≤ j ≤ N 예제 입력 1 5 3 5 4 3 2 1 1 3 2 4 5 5 예제 출력 1 12 9 1 문제 출처 https://www.acmicpc.net/problem/11659 11659번: 구간 합 구하기 4 첫째 줄에 수의 개수 N..
2022.10.26 -
- [Algorithm] 스캐닝 메소드(Scanning Method)
스캐닝 메소드(Scanning Method) 일렬로 나열된 데이터가 주어질 때, 문제에서 요구하는 어떤 특정 구간과 그 구간의 길이를 구하고자 할 때가 있다. 예 아래와 같이 배열 a에 0 또는 1의 데이터가 주어질 때, 연속적으로 1이 발생되는 최대 구간의 길이와 그 때의 위치를 구하라. X 1 0 1 1 0 1 1 1 1 0 a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9] a[10] 구간 [1, 1]에는 연속된 1이 1개 발생되었고, 구간 [3, 4]에는 연속된 1이 2개 발생되었으며 구간 [6, 9]에는 연속된 1이 4개 발생되었다. 여기서 연속적으로 1이 발생되는 최대 구간은 [6, 9]이고, 구간의 길이는 4가 된다. 3중 for 문을 이용하여 구하기 다..
2022.10.26 -
- [Algorithm] 부분합(Partial Sum) ; 누적합(Prefix Sum)
부분합(Partial Sum) ; 누적합(Prefix Sum) 연속된 구간 $start$ 부터 $end$ 까지의 합 구하기 일차원 배열 a가 아래와 같이 초기화되어 있다. X 10 20 30 40 50 60 70 80 90 100 a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9] a[10] 배열 a에서 연속된 구간 $start$ 부터 $end$ 까지의 합을 $\displaystyle \sum_{k=\text{start}}^{\text{end}} a[k] = a[start] + a[start + 1] + \cdots + a[end -1] + a[end]$ 로 정의한다면 ($start ≤ end$), 구간 5부터 구간 9까지의 합 $\displaystyle \sum_{..
2022.10.26 -
- [Algorithm] 형상수(Figulate Number)형상수(Figulate Number) 고대 그리스 시대의 피타고라스학파는 우주의 만물이 수로 이루어져 있다고 믿었다. 그래서 도형을 이용하여 숫자를 표현하였고, 수와 도형의 관계를 연구하였다. 이렇게 도형으로 묘사된 자연수를 형상수(Figulate Number)라고 한다. 삼각수(Triangular Number) 개념 삼각형 모양으로 어떤 점을 놓았을 때, 삼각형을 이루기 위해 사용된 점의 개수 알고리즘 삼각수는 연속하는 자연수의 합과 같으며, 공식은 다음과 같다. $$1 + 2 + 3 + \cdots + n = \frac{n × (n+1)}{2}$$ 코드로 나타내면 다음과 같다. #include using namespace std; int main() { int a[6]; for (int i = 1; ..
2022.10.26 -
- [Algorithm] 에라토스테네스의 체(Sieve of Erathosthenes)에라토스테네스의 체(Sieve of Erathosthenes) 개념 지구의 둘레를 처음으로 계산한 고대 그리스 수학자 에라토스테네스(BC273 ~ BC192, Eratosthenes)가 기원전 200년에 고안한 방법으로, 아래와 같은 방법을 이용하여 소수를 구한다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1은 소수가 아니라고 했으므로 우선 지워버린다. 다음으로 맨 처음 나오는 수(= 2)는 무조건 소수이다. 왜냐하면 약수가 1과 자기 자신밖에 없기 때문이다. 그리고 2의 배수는 소수가 아니므로 모두 지워버린다. 다음으로 지워지지 않은 수들 중에서 가장 작은 수(= 3)를 찾는다. 이렇게 지워지지 않고 남은 수는 소수이다. 왜냐하면 1이 아니면서 3보다 ..
2022.10.25 -
- [BOJ-9020][C++] 골드바흐의 추측문제 1보다 큰 자연수 중에서 1과 자기 자신을 제외한 약수가 없는 자연수를 소수라고 한다. 예를 들어, 5는 1과 5를 제외한 약수가 없기 때문에 소수이다. 하지만, 6은 6 = 2 × 3 이기 때문에 소수가 아니다. 골드바흐의 추측은 유명한 정수론의 미해결 문제로, 2보다 큰 모든 짝수는 두 소수의 합으로 나타낼 수 있다는 것이다. 이러한 수를 골드바흐 수라고 한다. 또, 짝수를 두 소수의 합으로 나타내는 표현을 그 수의 골드바흐 파티션이라고 한다. 예를 들면, 4 = 2 + 2, 6 = 3 + 3, 8 = 3 + 5, 10 = 5 + 5, 12 = 5 + 7, 14 = 3 + 11, 14 = 7 + 7이다. 10000보다 작거나 같은 모든 짝수 n에 대한 골드바흐 파티션은 존재한다. 2보다 큰 짝수..
2022.10.25 -
- [BOJ-4948][C++] 베르트랑 공준문제 베르트랑 공준은 임의의 자연수 n에 대하여, n보다 크고, 2n보다 작거나 같은 소수는 적어도 하나 존재한다는 내용을 담고 있다. 이 명제는 조제프 베르트랑이 1845년에 추측했고, 파프누티 체비쇼프가 1850년에 증명했다. 예를 들어, 10보다 크고, 20보다 작거나 같은 소수는 4개가 있다. (11, 13, 17, 19) 또, 14보다 크고, 28보다 작거나 같은 소수는 3개가 있다. (17,19, 23) 자연수 n이 주어졌을 때, n보다 크고, 2n보다 작거나 같은 소수의 개수를 구하는 프로그램을 작성하시오. 입력 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 케이스는 n을 포함하는 한 줄로 이루어져 있다. 입력의 마지막에는 0이 주어진다. 출력 각 테스트 케이스에 대해서, n보다 크고..
2022.10.25 -
- [BOJ-1929][C++] 소수 구하기문제 M이상 N이하의 소수를 모두 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다. 출력 한 줄에 하나씩, 증가하는 순서대로 소수를 출력한다. 예제 입력 1 3 16 예제 출력 1 3 5 7 11 13 알고리즘 분류 수학 정수론 소수 판정 에라토스테네스의 체 문제 출처 https://www.acmicpc.net/problem/1929 1929번: 소수 구하기 첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다. www.acmicpc.net 문제 해결 방..
2022.10.25 -
- [Algorithm] 소인수 분해(Prime/Integer Factorization)소인수 분해(Prime/Integer Factorization) 개념 특정 자연수를 1보다 큰 자연수인 소인수(소수인 인수)들만의 곱으로 표현하는 것 합성수를 소수의 곱으로 나타내는 방법 소인수 분해를 일의적으로 결정하는 공식은 아직 발견되지 않았다. 현대 암호학에서 소인수 분해는 암호 처리를 하는데 중요하게 사용된다. 모든 합성수는 소인수 분해된 형태를 가지고 있다. 산술의 기본 정리(Fundamental Theorem of Arithmetic)로 증명된다. 알고리즘 기본 알고리즘 소인수는 1이라는 값이 아닌 2부터 시작하는 것이 핵심이며, 2로 나누지 못할 경우 2에서 하나씩 증가시켜주면서 나누어지는지 체크하면 된다. void factorize(int n) { int factor = 2; // 시작 ..
2022.10.25 -
- [BOJ-11653][C++] 소인수분해문제 정수 N이 주어졌을 때, 소인수분해하는 프로그램을 작성하시오. 입력 첫째 줄에 정수 N (1 ≤ N ≤ 10,000,000)이 주어진다. 출력 N의 소인수분해 결과를 한 줄에 하나씩 오름차순으로 출력한다. N이 1인 경우 아무것도 출력하지 않는다. 예제 입력 1 72 예제 출력 1 2 2 2 3 3 예제 입력 2 3 예제 출력 2 3 예제 입력 3 6 예제 출력 3 2 3 예제 입력 4 2 예제 출력 4 2 예제 입력 5 9991 예제 출력 5 97 103 알고리즘 분류 수학 정수론 소수 판정 문제 출처 https://www.acmicpc.net/problem/11653 11653번: 소인수분해 첫째 줄에 정수 N (1 ≤ N ≤ 10,000,000)이 주어진다. www.acmicpc.net 문제 ..
2022.10.25 -
- [BOJ-2581][C++] 소수문제 자연수 M과 N이 주어질 때 M이상 N이하의 자연수 중 소수인 것을 모두 골라 이들 소수의 합과 최솟값을 찾는 프로그램을 작성하시오. 예를 들어 M=60, N=100인 경우 60이상 100이하의 자연수 중 소수는 61, 67, 71, 73, 79, 83, 89, 97 총 8개가 있으므로, 이들 소수의 합은 620이고, 최솟값은 61이 된다. 입력 입력의 첫째 줄에 M이, 둘째 줄에 N이 주어진다. M과 N은 10,000이하의 자연수이며, M은 N보다 작거나 같다. 출력 M이상 N이하의 자연수 중 소수인 것을 모두 찾아 첫째 줄에 그 합을, 둘째 줄에 그 중 최솟값을 출력한다. 단, M이상 N이하의 자연수 중 소수가 없을 경우는 첫째 줄에 -1을 출력한다. 예제 입력 1 60 100 예제 출력 1 6..
2022.10.25 -
- [BOJ-1978][C++] 소수 찾기문제 주어진 수 N개 중에서 소수가 몇 개인지 찾아서 출력하는 프로그램을 작성하시오. 입력 첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다. 출력 주어진 수들 중 소수의 개수를 출력한다. 예제 입력 1 4 1 3 5 7 예제 출력 1 3 알고리즘 분류 수학 정수론 소수 판정 에라토스테네스의 체 문제 출처 https://www.acmicpc.net/problem/1978 1978번: 소수 찾기 첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다. www.acmicpc.net 문제 해결 방법 소수 찾기 알고리즘을 사용하여 간단하게 문제를 해결하였다. 소수(Prim..
2022.10.25 -
- [BOJ-2830][C++] 설탕 배달문제 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그램 봉지와 5킬로그램 봉지가 있다. 상근이는 귀찮기 때문에, 최대한 적은 봉지를 들고 가려고 한다. 예를 들어, 18킬로그램 설탕을 배달해야 할 때, 3킬로그램 봉지 6개를 가져가도 되지만, 5킬로그램 3개와 3킬로그램 1개를 배달하면, 더 적은 개수의 봉지를 배달할 수 있다. 상근이가 설탕을 정확하게 N킬로그램 배달해야 할 때, 봉지 몇 개를 가져가면 되는지 그 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N이 주어진다. (3 ≤ N ≤ 5000) 출력 상근이가 배달하는 봉지의 최소 개수를 출력한다. 만약, 정..
2022.10.24 -
- [BOJ-2775] 부녀회장이 될테야문제 평소 반상회에 참석하는 것을 좋아하는 주희는 이번 기회에 부녀회장이 되고 싶어 각 층의 사람들을 불러 모아 반상회를 주최하려고 한다. 이 아파트에 거주를 하려면 조건이 있는데, “a층의 b호에 살려면 자신의 아래(a-1)층의 1호부터 b호까지 사람들의 수의 합만큼 사람들을 데려와 살아야 한다” 는 계약 조항을 꼭 지키고 들어와야 한다. 아파트에 비어있는 집은 없고 모든 거주민들이 이 계약 조건을 지키고 왔다고 가정했을 때, 주어지는 양의 정수 k와 n에 대해 k층에 n호에는 몇 명이 살고 있는지 출력하라. 단, 아파트에는 0층부터 있고 각층에는 1호부터 있으며, 0층의 i호에는 i명이 산다. 입력 첫 번째 줄에 Test case의 수 T가 주어진다. 그리고 각각의 케이스마다 입력으로 첫 번째 줄에 ..
2022.10.24 -
- [BOJ-10250][C++] ACM 호텔문제 ACM 호텔 매니저 지우는 손님이 도착하는 대로 빈 방을 배정하고 있다. 고객 설문조사에 따르면 손님들은 호텔 정문으로부터 걸어서 가장 짧은 거리에 있는 방을 선호한다고 한다. 여러분은 지우를 도와 줄 프로그램을 작성하고자 한다. 즉 설문조사 결과 대로 호텔 정문으로부터 걷는 거리가 가장 짧도록 방을 배정하는 프로그램을 작성하고자 한다. 문제를 단순화하기 위해서 호텔은 직사각형 모양이라고 가정하자. 각 층에 W 개의 방이 있는 H 층 건물이라고 가정하자 (1 ≤ H, W ≤ 99). 그리고 엘리베이터는 가장 왼쪽에 있다고 가정하자(그림 1 참고). 이런 형태의 호텔을 H × W 형태 호텔이라고 부른다. 호텔 정문은 일층 엘리베이터 바로 앞에 있는데, 정문에서 엘리베이터까지의 거리는 무시한다. 또 모..
2022.10.24