목록백준/여러가지 문제들 (39)
Study hard

https://www.acmicpc.net/problem/2671 2671번: 잠수함식별 입력에 들어있는 스트링을 읽고, 이것이 잠수함의 엔진소리를 나타내는 스트링인지 아니면 그냥 물속의 잡음인지를 판정한 후, 잠수함의 엔진 소리에 해당하는 스트링이면 "SUBMARINE"을 출력하고 www.acmicpc.net [풀이] regex정규표현식을 사용하여 문제를 풀었다. 문제의 엔진소리 패턴을 문자열로 정의해두고, 입력된 문자열이 패턴과 같으면 "SUBMARINE"을, 그렇지 않으면 "NOISE"를 출력하도록 하였다. #include #include //정규표현식 #include using namespace std; string str; int main() { cin >> str; string engine =..

www.acmicpc.net/problem/2003 2003번: 수들의 합 2 첫째 줄에 N(1 ≤ N ≤ 10,000), M(1 ≤ M ≤ 300,000,000)이 주어진다. 다음 줄에는 A[1], A[2], …, A[N]이 공백으로 분리되어 주어진다. 각각의 A[x]는 30,000을 넘지 않는 자연수이다. www.acmicpc.net [풀이] 투포인터로 풀 수 있는 문제였다. 투포인터는 하나의 배열에 두 개의 포인터를 사용하는 알고리즘으로, 배열의 원소가 모두 자연수이므로 사용할 수 있었다. 1. start와 end포인터를 0으로 초기화 2. 합이 M보다 작으면 end포인터를 이동시켜 값을 크게 해주기 3. M보다 크면 start포인터를 이동시켜 값을 작게 해주기 4. M과 같으면 count + 1,..

www.acmicpc.net/problem/13458 13458번: 시험 감독 첫째 줄에 시험장의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 각 시험장에 있는 응시자의 수 Ai (1 ≤ Ai ≤ 1,000,000)가 주어진다. 셋째 줄에는 B와 C가 주어진다. (1 ≤ B, C ≤ 1,000,000) www.acmicpc.net [풀이] 간단한 수학문제였다. 총감독관은 시험장 수만큼 있으므로 각 시험장에서 B만큼씩 빼고 부감독관의 최소 수를 구하면 된다. ※답이 int범위를 초과할 수 있으므로 long long자료형을 사용해야한다. #include using namespace std; const int Max = 1000000; int N; long long A[Max]; lon..

https://www.acmicpc.net/problem/2004 2004번: 조합 0의 개수 첫째 줄에 정수 n, m(0≤m≤n≤2,000,000,000, n!=0)이 들어온다. www.acmicpc.net [풀이] nCm = n! / m!(n-m)!이므로 n!을 구할 때 나오는 2의 개수 - m!을 구할 때 나오는 2의 개수 - (n-m)!을 구할 때 나오는 2의 개수와, n!을 구할 때 나오는 5의 개수 - m!을 구할 때 나오는 5의 개수 - (n-m)!을 구할 때 나오는 5의 개수 중에 더 작은 수가 0의 개수가 된다. (2 * 5의 개수이기 때문!) 2020/06/18 - [백준/여러가지 문제들] - (c++)백준 1676번: 팩토리얼 0의 개수 (c++)백준 1676번: 팩토리얼 0의 개수 ..

https://www.acmicpc.net/problem/1676 1676번: 팩토리얼 0의 개수 N!에서 뒤에서부터 처음 0이 아닌 숫자가 나올 때까지 0의 개수를 구하는 프로그램을 작성하시오. www.acmicpc.net [풀이] 팩토리얼을 일일이 구하면 어느 순간 기하급수적으로 커지기 때문에 한계가 있다. 팩토리얼을 구하면서 10이 몇번 곱해지는 지를 구하면 된다. 1부터 N까지 for문을 돌리면서 각 수에 2와 5가 몇 개씩 포함되어 있는지 센다. 더 적은 개수가 2 * 5(10)의 개수이다. ex)12 1, 2, 3, 4(2 * 2), 5, 6(2 * 3), 7, 8(2 * 2 * 2) , 9, 10(2 * 5), 11, 12(2 * 2 * 3) 2 개수 : 10개 5 개수 : 2개 2 * 5(..

https://www.acmicpc.net/problem/10872 10872번: 팩토리얼 0보다 크거나 같은 정수 N이 주어진다. 이때, N!을 출력하는 프로그램을 작성하시오. www.acmicpc.net [풀이] 팩토리얼 : 그 수보다 작거나 같은 모든 양의 정수의 곱 #include using namespace std; int N; void solution() { cin >> N; int Factorial = 1; for (int i = 2; i