seong

백준 3052번 본문

알고리즘/백준

백준 3052번

hyeonseong 2022. 7. 29. 10:48

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        // 나누는 값은 42.
        Scanner sc = new Scanner(System.in);
        int arry[] = new int[10];//배열의 크기 = 10
        int cont = 0;
        for (int i = 0; i < arry.length; i++) {// 0~9 까지 총 10개
            arry[i] = sc.nextInt() % 42;// 배열에 숫자 저장
        }
        for(int i = 0; i < arry.length; i++) {
            int tmp = 0;
            for (int j = i + 1; j < arry.length; j++) {
                if (arry[i] == arry[j]) {
                    tmp++;
                    }
                }
            if (tmp == 0) {
                cont++;
            }
        }
        System.out.println(cont);
    }
}
  • i = 1일 경우
  • arry[1]에 있는 값과 arry[2]에 있는 값을 비교해 같다면 tmp를 1증가
  • for문을 빠져나오고 아래의 if문에서 tmp 가 현재 증가하지 않았으므로
  • cont를 1증가 → 반복

 

 

[백준] 3052번 : 나머지 - JAVA [자바]

https://www.acmicpc.net/problem/3052 3052번: 나머지 문제 두 자연수 A와 B가 있을 때, A%B는 A를 B로 나눈 나머지 이다. 예를 들어, 7, 14, 27, 38을 3으로 나눈 나머지는 1, 2, 0, 2이다. 수 10개를 입력받은..

st-lab.tistory.com

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> a = new HashSet<Integer>();

        for (int i = 0; i < 10; i++) {
            a.add(sc.nextInt() % 42);
        }
        in.close();
        System.out.print(a.size());
    }
}
  • Hashset을 선언한 후 → 반복문에서 Hashset안에 나눈 나머지 값들을 모두 넣어준다
  • 여기서 Hashset은 이미 가지고 있는 값이 라면 저장을 하지 않는다.
  • 그러므로 중복된 값들을 걸러낼 수 있다.