모각소-0726

윰이다·2022년 7월 26일
0

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;


}

0개의 댓글