2577번 문제
처음엔 result를 문자열로 접근하여 풀려고 하였는데
나머지로 접근하는게 더 현명함
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string>
using namespace std;
int main() {
int A[3];
int result=1;
int num = 1;
int arr[10] = { 0, };
for (int i = 0; i < 3; i++)
{
scanf_s("%d", &A[i]);
result *= A[i];
}
//printf("%d", result);
while (result > 0)
{
num = result % 10;//
arr[num]++;
result = result / 10;
}
for (int i = 0; i < 10; i++)
{
printf("%d\n", arr[i]);
}
return 0;
}
3052번 나머지
서로 다른 숫자 저장 부분
count[v % 42]++;
를 할수있음을 명시하자
#include <iostream>
using namespace std;
int main(int argc, const char* argv[]) {
/*
0으로 초기화를 해주어야 한다.
bool 배열을 활용 할 경우 bool count[42] = {false} 이런식으로
초기화 해줄 수 있다.
*/
int count[42] = {};
int v;
for (int i = 0; i < 10; i++) {
cin >> v;
// count 는 나머지를 저장하는 배열로 0~9까지
count[v % 42]++;
}
int result = 0;
/*
배열을 순회하면서 적어도 한 번 이상 나온 경우에는
result 값을 증가시킨다. (서로 다른 수를 세기 위함)
*/
for (int v : count) {
if (v > 0) {
result++;
}
}
cout << result;
return 0;
}