[백준] 문제번호

(문제)


[백준] 문제번호 1

→ 작업 내용을 보면 “얼마나 많은 값이 있는지 보여줘”라고 되어 있습니다.

그 다음에, HashSet은 중복을 허용하지 않습니다.쉽게 해결되지 않을까요?

HashSet 선언(카운트를 구하는 것이므로 데이터 타입은 Integer) → for 문을 실행하면서 각 행을 읽어온 후,

들어오는 숫자를 42로 나눈 나머지가 해시 세트에 추가(저장)됩니다.

그 후 HashSet의 크기를 계산할 때 결과적으로 중복되지 않는(고유한) 나머지의 개수를 확인한다.

(나머지 값이 같으면 전혀 저장되지 않는다.)

(답변)

import java.io.*;
import java.util.HashSet;

public class Main {
    public static void main(String args())throws IOException {

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        HashSet<Integer> set = new HashSet<>(); //HashSet + 데이터타입 Integer


        for (int i = 0; i < 10; i++) { // 10개의 수가 주어진다
            set.add(Integer.parseInt(br.readLine()) % 42); // 이를 42로 나눈 나머지를 set(Hashset)에 저장한다.
        }
        br.close();
        System.out.println(set.size()); // set의 사이즈를 출력한다.
    }
}

원천

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

3052호:나머지

각 숫자를 42로 나눈 나머지는 39, 40, 41, 0, 1, 2, 40, 41, 0, 1입니다. 6가지 값이 있습니다.

www.acmicpc.net