문제설명
소스코드
#include <iostream>
using namespace std;
int main() {
int array[42] = {};
int input;
for (int i = 0; i < 10; ++i)
{
cin >> input;
++array[input % 42];
}
int count = 0;
for (int i = 0; i < 42; ++i) if (array[i] > 0) ++count;
cout << count;
}
풀이
0으로 초기화된 42칸짜리 배열을 선언하고, 입력을 42로 나눈 나머지를 a라고 하면, 좀 전에 선언한 배열의 a번째 인덱스를 1증가 시킨다.
for문을 돌려서 0보다 큰 배열의 개수를 센 후 출력한다.
나머지가 같은 수가 있다면, array[나머지]가 1증가하게 된다.
왜 42칸짜리 배열을 선언하는가?
어떠한 수든 42로 나눈 나머지는 0~41이기 때문에 42칸짜리 배열을 선언하는 것이다.
'자료구조 & 알고리즘 > BOJ' 카테고리의 다른 글
[C++] 백준 4단계 - 1546번 문제 (0) | 2023.04.01 |
---|---|
[C++] 백준 4단계 - 10811번 문제 (바구니 뒤집기) (0) | 2023.03.31 |
[C++] 백준 4단계 - 5597번 문제 (0) | 2023.03.30 |
[C++] 백준 4단계 - 10810번 문제 (0) | 2023.03.29 |
[C++] 백준 4단계 - 2562번 문제 (0) | 2023.03.29 |