728x90
3052번: 나머지
각 수를 42로 나눈 나머지는 39, 40, 41, 0, 1, 2, 40, 41, 0, 1이다. 서로 다른 값은 6개가 있다.
www.acmicpc.net
이 문제도 간단한 문제이고, 배열을 차례대로 돌면서 값을 비교하면 되는 문제이다.
배열로 푸는 문제이지만 HashSet을 이용하면 정말 간단하게 풀 수 있는 문제이다.
풀이 🎉
1. BufferedReader + 배열
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
public class BOJ_3052 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int count = 1;
int[] arr = new int[10];
for(int i=0; i<arr.length; i++) {
arr[i] = Integer.parseInt(br.readLine()) % 42;
}
br.close();
Arrays.sort(arr);
for(int i=0; i<arr.length-1; i++) {
if(arr[i] != arr[i+1]) count++;
}
System.out.println(count);
}
}
2. BufferedReader + HashSet
HashSet의 중복을 허용하지 않는 특성을 이용하면 저어어엉말 간단하게 풀 수 있다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashSet;
public class BOJ_3052 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
HashSet<Integer> hs = new HashSet<Integer>();
for(int i=0; i<10; i++) {
hs.add(Integer.parseInt(br.readLine()) % 42);
}
br.close();
System.out.println(hs.size());
}
}
HashSet은 중복을 허용하지 않기 때문에 중복되지 않는 값들만 들어가게 되고 size() 메서드로 Set의 크기를 출력해주면 된다.
제출 번호: 25942572 -> HashSet
제출 번호: 25942395 -> 배열
728x90
'Algorithms 🚀 > Baekjoon' 카테고리의 다른 글
[백준/1427번] 소트인사이드 - JAVA[자바] (0) | 2021.04.12 |
---|---|
[백준/8958번] OX퀴즈 (0) | 2021.02.16 |
[백준/1546번] 평균 (0) | 2021.02.02 |
[백준/2577번] 숫자의 개수 (0) | 2021.02.01 |
[백준/10818번] 최소, 최대 (0) | 2021.02.01 |