[백준] 3052번 나머지 풀이 코드 (C/C++/Java 자바/Python 파이썬)

풀이

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))

문제 출처

https://www.acmicpc.net/problem/3052

Related posts

블로그 이사

[Codeforces] 50A Domino piling 풀이 코드 (C/C++/Java /Python)

[Codeforces] 1538B Friends and Candies 풀이 코드 (C/C++/Java /Python)