https://st-lab.tistory.com/46?category=833672
[백준] 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
*해당 포스팅은 상단에 링크된 포스팅을 바탕으로 개인 공부 목적을 위해 작성되었으므로 자세한 내용은 위 링크를 확인해 주시기 바랍니다.
최근에 봤던 자바 컬렉션 프레임워크 글에서 간단하게 HashSet의 개념을 정리했었는데 이 문제에서 간단히 사용한다.
https://st-lab.tistory.com/142?category=856997
자바 [JAVA] - 자바 컬렉션 프레임워크 (Java Collections Framework)
아마 프로그래밍을 전공한다면 '자료구조'라는 단어를 들어본 적이 있을 것이다. 자료구조는 Data Structure라고 하는데, 직역하면 데이터 구조. 좀 더 자세하게 설명하자면 '일련의 일정 타입들의
st-lab.tistory.com
Set
→ 데이터를 중복해서 저장할 수 없다.
→ 입력 순서대로의 저장 순서를 보장하지 않는다.
HashSet - Set의 파생 클래스
→ Set의 특징을 포함한다.
→ hash에 의해 데이터의 위치를 특정시켜 해당 데이터를 빠르게 색인할 수 있다.
→ 삽입, 삭제, 색인의 속도가 빠르다.
이 문제에서는 HashSet을 이용해서 중복되지 않은 정수만 저장해서 원소의 총개수를 반환하면 된다.
HashSet을 이용한 코드
import java.util.HashSet;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class Main {
public static void main(String[] args) {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
HashSet<Integer> h = new HashSet<Integer>();
for(int i = 0; i < 10; i++) {
h.add(Integer.parseInt(br.readLine()) % 42);
}
br.close();
System.out.println(h.size());
}
}
배열을 이용한 코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputSreamReader;
public class Main {
public static void main(String[] args) {
boolean[] arr = new boolean[42];
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
for(int i = 0; i < 10; i++) {
arr[Integer.parseInt(br.readLine()) % 42] = true;
}
int count = 0;
for(boolean value : arr) {
if(value) {
count++;
}
}
System.out.println(count);
}
}
→ 42로 나눴을 때 나머지로 나올 수 있는 0~41을 배열에 넣어둔다.(default 값은 false)
→ 나머지 값이 나올 때마다 true로 바꿔준다. 같은 값이 여러 번 나와도 한 번만 세면 되기 때문에 한 번이라도 나온 수만 true로 바꿔준다.
→ true 값인 원소의 개수를 출력한다.
'Computer Science > Algorithm' 카테고리의 다른 글
[JAVA] 셀프 넘버 (0) | 2022.03.09 |
---|---|
[JAVA] OX퀴즈 (0) | 2022.03.08 |
[JAVA] 숫자의 개수 (1) | 2022.03.06 |
[JAVA] 최소, 최대 (0) | 2022.03.04 |
[JAVA] A+B - 4 (0) | 2022.03.03 |