본문 바로가기

문제 풀이262

[C] 백준 4948번 : 베르트랑 공준 www.acmicpc.net/problem/4948 4948번: 베르트랑 공준 베르트랑 공준은 임의의 자연수 n에 대하여, n보다 크고, 2n보다 작거나 같은 소수는 적어도 하나 존재한다는 내용을 담고 있다. 이 명제는 조제프 베르트랑이 1845년에 추측했고, 파프누티 체비쇼 www.acmicpc.net 문제 접근법 1. 에라토스테네스의 체를 이용해서 최대 범위까지의 소수를 구한다. (배열을 활용) 2. n을 입력받고 주어진 범위 내의 소수의 갯수를 카운트해서 출력 느낀점 처음에 단순하게 함수를 만들어서 n 값을 입력 받을 때마다 계산하는 쪽으로 생각했다. 하지만 주어진 시간은 1초였고 찾아보니 에라토스테네스의 체라는 소수 찾는 알고리즘이 있었다. 이번 기회로 새로운 알고리즘을 공부했지만 계속 소수 문제.. 2021. 3. 17.
[C] 백준 1929번 : 소수 구하기 www.acmicpc.net/problem/1929 1929번: 소수 구하기 첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다. www.acmicpc.net 문제 접근법 1. 자연수 m과 n을 입력 받는다. 2. 소수를 판별하는 함수를 통해서 m과 n 사이의 값들이 소수인지 확인한다. 3. 소수가 맞으면 출력 느낀점 단계별로 문제를 풀이하다보니 이전의 소수 판별 문제와 매우 비슷해서 매우 쉬웠다. 코드 #include bool isPrime(int n) { if (n 2021. 3. 16.
그 동안의 1일 1코딩 실천 20.11.12 #include int main() { int A, B, C; int arr[10] = {}; scanf("%d%d%d",&A, &B, &C); int temp = A * B * C; while (temp != 0) { arr[temp % 10]++; temp /= 10; } for (int i = 0; i < 10; i++) { printf("\n%d", arr[i]); } return 0; } 20.11.16 #define _CRT_SECRUE_NO_WARNING_ #include int main() { int Case, N; // Case = 총 경우, N = 학생 수 double average; scanf("%d", &Case); for (int i = 0; i < Case;i++.. 2021. 3. 15.
[C] 백준 11653번 : 소인수분해 www.acmicpc.net/problem/11653 11653번: 소인수분해 첫째 줄에 정수 N (1 ≤ N ≤ 10,000,000)이 주어진다. www.acmicpc.net 문제 접근법 단계별로 분류해서 접근했다. 1. 나누는 숫자가 소수인지 판단 2. 소수가 맞다면 주어진 N을 나눴을 때 나머지가 없다면 N = N / div하고 출력 아니라면 div++ 3. 나누다가 N이 1이라면 종료 느낀점 생각한 접근법으로 시도했는데 맞게 나오지만 시간 초과... 전에 소수문제가 나와서 소수인지를 꼭 판단해야할 줄 알았는데 그게 아니었다. 이후 코드를 최소화 하고 재도전했는데 성공! 아직 코드가 깔끔하지 않은 것 같다. 코드 #include int main() { int n, i = 2; scanf("%d", .. 2021. 3. 15.