이 튜토리얼에서는 한 배열의 각 요소를 다른 배열 요소들의 곱으로 나누는 프로그램을 작성해 보겠습니다.
여기서는 문제를 해결하기 위한 간단한 방법을 사용합니다. 문제 해결 과정을 단계별로 살펴보겠습니다.
두 개의 배열을 초기화합니다.
두 번째 배열을 순회하면서 모든 요소의 곱을 계산합니다. 이때 값이 0인 요소는 건너뛰어 0으로 나누는 오류를 방지합니다.
첫 번째 배열을 순회하면서 각 요소를 두 번째 배열 요소들의 곱으로 나눈 결과를 출력합니다.
예제
전체 코드를 확인해 보겠습니다.
#include <bits/stdc++.h>
using namespace std;
void divideArrOneWithTwo(int arr_one[], int arr_two[], int n, int m) {
int arr_two_elements_product = 1;
for (int i = 0; i < m; i++) {
if (arr_two[i] != 0) {
arr_two_elements_product = arr_two_elements_product * arr_two[i];
}
}
for (int i = 0; i < n; i++) {
cout << floor(arr_one[i] / arr_two_elements_product) << " ";
}
cout << endl;
}
int main() {
int arr_one[] = {32, 22, 4, 55, 6}, arr_two[] = {1, 2, 3};
divideArrOneWithTwo(arr_one, arr_two, 5, 3);
return 0;
}
출력 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
5 3 0 9 1
동작 원리
위 예제에서 두 번째 배열 {1, 2, 3}의 모든 요소를 곱하면 6이 됩니다. 이후 첫 번째 배열 {32, 22, 4, 55, 6}의 각 요소를 6으로 나누면 5, 3, 0, 9, 1이 됩니다. 정수형 변수끼리 나눗셈이 수행되므로 소수점 이하는 자동으로 버려집니다.
마무리
이 튜토리얼에 대해 궁금한 점이 있다면 댓글로 남겨 주세요.