수학 5

[백준] 1978번 : 소수 찾기 (C++)

1978번: 소수 찾기 첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다. www.acmicpc.net 📚 문제 한 줄 요약 최대 100개의 1000보다 작은 수가 주어졌을 때 소수가 몇 개인지 구하기 📚 풀이 (핵심 : 어떻게 소수인지 판별하는 연산을 구현할 것인가?) 문제 해결 순서는 다음과 같이 계획했다. 1. 입력 데이터 받기 (숫자의 개수 N, 숫자) 2. 소수 구하기 3. 소수의 개수 출력하기 소수를 구하는 과정은 다음과 같이 구현했다. // 미리 소수 개수를 증가시킨다.(1은 소수가 아니므로 제외.) if (num >= 2) primeNum++; for (int i = 2; i*i

Algorithm 2021.11.27

[백준] 4375번 : 1 (C++)

4375번: 1 2와 5로 나누어 떨어지지 않는 정수 n(1 ≤ n ≤ 10000)가 주어졌을 때, 1로만 이루어진 n의 배수를 찾는 프로그램을 작성하시오. www.acmicpc.net 📚 문제 한 줄 요약 1로만 이루어진 n의 배수 중 가장 작은 자릿수 찾기 📚 고민한 부분 1. 입력이 언제가 마지막인지 알 수 없는데 어떻게 입력받아야 할까? 이 부분은 예전에 같은 유형은 겪은 적이 있어서 쉽게 해결했다. 아래 링크의 문제 풀이를 참고하였다. ▶ https://nhee-devlog.tistory.com/2 2. 자릿수를 늘린 수열 값을 그대로 저장하면 변수 최대 크기를 넘기는데 어떻게 처리해야 할까? 이는 mod값을 이용하는 걸로 해결하였다. 자세한 내용은 풀이에서 다루었다. 📚 풀이 (핵심 : 어떻게..

Algorithm 2021.11.25

[백준] 1037번 : 약수 (C++)

문제 링크 1037번: 약수 첫째 줄에 N의 진짜 약수의 개수가 주어진다. 이 개수는 50보다 작거나 같은 자연수이다. 둘째 줄에는 N의 진짜 약수가 주어진다. 1,000,000보다 작거나 같고, 2보다 크거나 같은 자연수이고, 중복되 www.acmicpc.net 문제 한 줄 요약 약수를 이용해서 원래 숫자 N 구하기 풀이 (핵심 : 약수로 어떻게 N을 구할 수 있느냐를 생각해내기) N을 가장 작은 수로 나눈다면 몫은 가장 큰 수가 될 것이다. 반대로, N을 가장 큰 수로 나눈다면 몫은 가장 작은 값이 될 것이다. 즉, 주어진 약수의 최솟값과 최댓값을 곱하면 N의 값이 나오게 될 것이다. (단, 약수가 하나일 때는 약수의 제곱을 해준다.) 이를 이용해 다음과 같은 순서로 문제를 해결했다. 1. 입력 데이..

Algorithm 2021.11.23

[백준] 10951번 : A+B - 4 (C++)

문제 두 정수 A와 B를 입력받은 후, A+B 출력하는 프로그램 작성. 문제만 보면 단순합니다. 하지만, 이전 문제인 백준 알고리즘 19050번 : A+B - 3 문제와는 다른 점이 있죠. 바로 입력이 다음과 같다는 것입니다. 예제 입력 2 2 3 5 6 4 5 9 7 1 테스트 케이스가 몇 개인지 알려주지 않기 때문에 코드를 짤 때 어떻게 "테스트 케이스가 끝"임을 인식할 수 있을지 고민해야 합니다. 힌트 이 문제의 힌트는 다음과 같습니다. 더보기 while문을 사용하면 됩니다😀 Code 코드는 다음과 같이 작성하면 됩니다! 더보기 #include using namespace std; int main(){ int A, B; while(cin >> A >> B) cout

Algorithm 2021.07.27