코테 2023. 3. 12. 17:52

전체 코드

#include <iostream>

int main()
{
	int arr[42] = { 0, };
	int num, result = 0;

	for (int i = 0; i < 10; i++)
	{
		std::cin >> num;
		arr[num % 42]++;
	}

	for (int i = 0; i < 42; i++)
	{
		if (arr[i] != 0)
			result++;
	}
	std::cout << result;

}

풀이

  • 인덱스 42로 선언 : 0부터 41까지 이용 가능
  • 각 인덱스 값 : 인덱스를 나머지랑 같다고 가정할떄 해당 나머지의 개수
  • 전체 0으로 초기화
int arr[42] = { 0, };
  • 10번 반복하는 반복문 : 수를 10번 입력받는다고 미리 정해져 있기 떄문에 10번 반복하게 함
  • 수를 입력받음
  • 수를 42로 나눈뒤 나머지값을 인덱스값으로 하여 해당 인덱스값에 1을 더함
for (int i = 0; i < 10; i++)
{
	std::cin >> num;
	arr[num % 42]++;
}
  • 42번 반복하는 반복문 : arr배열 전체를 1개씩 검사하기 위해서 만듦
  • 만약 검사하는 배열값이 0이 아니라면(=해당 나머지값이 존재함) result값을 1 더함
  • result값 출력
for (int i = 0; i < 42; i++)
{
	if (arr[i] != 0)
		result++;
}
std::cout << result;