반응형
백준 3052번 java 나머지 (boolean 배열)
뭐 대충 일단 수를 10개 입력받는다. 그리고 42이로 나눠서 서로 다른 수가 몇 개인지 출력하라 인데 위에 예제처럼 수를 입력하면 나머지가 39, 40, 41, 0, 1, 2, 40, 41, 0, 1 이렇게 나온다. 중복되는 수를 제거하면 39, 40, 41, 0, 1, 2 이렇게 6개만 남는다. 그럼 6을 출력하는 것이다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
import java.util.Scanner;
//baekjoon_3052
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
boolean check[] = new boolean[42];
int n;
int cnt=0;
for(int i=0; i<10; i++) {
n = sc.nextInt();
if(!check[n % 42])
cnt++;
check[n % 42] = true;
}
System.out.println(cnt);
}
}
|
cs |
line 7 : 어떤 수를 42로 나눴을 때 나올수 있는 수는 0~41이므로 bool형식의 배열 크기를 42로 잡는다.
line 9 : 서로 다른 수가 나올때 만 카운트할 변수 선언.
line 11 : 10개 수를 입력하므로 10번 반복
line 13 : if(!check[n % 42]) 는 어떤 수를 42로 나눴을 때 나머지수의 해당되는 배열원소가 false값이면 if문안으로 들어가게 한다.
line 14 : if문에 들어오면 cnt값을 올려서 센다.
line 15 : 검사한 수를 true로 바꿔 나중에 또 같은 수가 나와도 if문 안으로 안들어가게 해 카운트하지 않게 한다.
line 17 : for문 후에 출력.
반응형
'프로그래밍 > 백준 알고리즘 코드' 카테고리의 다른 글
백준 8958 Java 자바 OX퀴즈 String (0) | 2020.09.07 |
---|---|
백준 1546번 java 평균 (배열) (0) | 2020.09.07 |
백준 2577번 java 숫자의 개수 (Array) (0) | 2020.09.04 |
백준 2562번 java 최댓값 (1차원 배열) (0) | 2020.09.03 |
백준 10818번 java 최소, 최대 (1차원 배열) (0) | 2020.09.03 |
댓글