풀이
C
길이 42짜리 배열을 선언하고 나머지 값을 인덱스로 하여 카운트를 올린 후, 마지막에 카운트가 0이 아닌 위치만 집계하면 됩니다.
C++
길이 42짜리 배열을 선언하고 나머지 값을 인덱스로 하여 카운트를 올린 후, 마지막에 카운트가 0이 아닌 위치만 집계하면 됩니다.
Java
나머지 값을 중복을 허용하지 않는 HashSet에 저장한 후 마지막에 HashSet 사이즈를 출력하면 됩니다.
Python
나머지 값을 리스트에 저장한 후 마지막에 중복을 허용하지 않는 Set으로 바꾸고 사이즈를 출력하면 됩니다.
코드
C
#include <stdio.h>
int main() {
    int num[42] = {0, }, i, a, temp, rlt = 0;
    for(i = 0; i < 10; i++){
        scanf("%d", &a);
        temp = a%42;
        num[temp]++;
    }
    for(i = 0;i < 42; i++){
        if(num[i] != 0)
            rlt++;
    }
    printf("%d", rlt);
    return 0;
}
C++
#include <iostream>
using namespace std;
int main() {
    int num[42] = {0, }, a, temp, rlt = 0;
    for(int i = 0; i < 10; i++){
        cin>>a;
        temp = a%42;
        num[temp]++;
    }
    for(int i = 0;i < 42; i++){
        if(num[i] != 0)
            rlt++;
    }
    cout<<rlt;
    return 0;
}
Java
import java.util.Scanner;
import java.util.HashSet;
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        HashSet<Integer> num = new HashSet<Integer>();
        for(int i = 0;i < 10;i++){
            num.add(sc.nextInt() % 42);
        }
        sc.close();
        System.out.print(num.size());
    }
}
Python
num = []
for i in range(10):
    n = int(input())
    num.append(n % 42)   
num = set(num)
print(len(num))