내 코드
import java.util.Scanner;
class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int[] num = new int[10];
int count = 0;
for(int i = 0;i < 10; i++) { // 10개 숫자 입력 받고 42로 나눈다.
num[i] = sc.nextInt() % 42;
}
for(int i = 0; i < 10; i++) { // 10개의 중복된 값이 있는지 확인한다.
int tmp = 0;
for(int j = i+1; j < 10; j++) { // i와 j(i+1)을 비교하여 같으면 tmp를 증가시킨다.
if(num[i]==num[j]) {
tmp++;
}
}
if(tmp == 0) { // i와 j가 값이 같지 않은 경우 count를 더해준다.
count++;
}
}
sc.close();
System.out.println(count);
}
}
자바 Collection 중 하나인 HashSet을 이용하면 보다 쉽게 해결 할 수 있다고 하지만 아직 Collection은 학습한 내용이 아니기 때문에 우선 학습한 내용으로 해결해볼 수 있도록 Scanner의 입력 방법과 배열로 해결하고자 했다.
입력 값이 10개로 정해져있어서 배열 길이가 10인 int형 배열을 생성하고, 서로 다른 값이 몇 개인지 확인하기 위해 count를 0으로 초기화 했다. 첫 번째 for문에서는 입력 받은 숫자에 대해서 나머지 연산을 하고 그것을 배열의 각 인덱스에 저장하고 두 번째 for문에서는 이 중에서 중복된 값을 체크하기 위해 배열을 i번째 인덱스와 j(i+1)번째 인덱스를 비교하여 같은 값은 제외시키고 다른 경우 count의 값을 증가시켜서 서로 다른 값이 몇 개인지 확인할 수 있도록 했다.
'Problem Solving > BOJ' 카테고리의 다른 글
[백준 8958번/1차원 배열] OX퀴즈 - Java (0) | 2021.03.15 |
---|---|
[백준 1546번/1차원 배열] 평균 - Java (0) | 2021.03.15 |
[백준 2577번/1차원 배열] 숫자의 개수 - Java (0) | 2021.03.15 |
[백준 2562번/1차원 배열] 최댓값 - Java (0) | 2021.03.15 |
[백준 10818번/1차원 배열] 최소, 최대 - Java (0) | 2021.03.15 |