본문 바로가기
알고리즘 문제풀이

백준 3052번 나머지(Java)

by jeonghaemin 2020. 10. 26.
728x90

문제

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

풀이

이 문제는 '순서를 유지하지 않고, 중복 없이 자료를 저장'하는 Set 자료구조를 이용하면 쉽게 풀 수 있는 문제라고 생각합니다.
반복문을 이용하여 입력 받은 값을 42로 나눈 나머지 값을 Set에 추가하게되면 중복 없이 값이 저장되기 때문에 문제에서 요구하는 출력 값인 '42로 나누었을 때, 서로 다른 나머지가 몇 개'를 Set에 저장되어 있는 값의 개수를 통해서 바로 알 수 있습니다.

코드

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashSet;
import java.util.Set;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        Set<Integer> set = new HashSet<>();

        for (int i = 0; i < 10; i++) {
            set.add(Integer.parseInt(br.readLine())%42);
        }

        System.out.println(set.size());
    }
}

댓글