import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int B = 42;
int[] num = new int[10];
int count = 0;
// 42로 나눈 나머지값 저장.
for (int i = 0; i < num.length; i++) {
num[i] = Integer.parseInt(br.readLine()) % B;
}
// 중복되는 값 제외
for (int i = 0; i < num.length; i++) {
boolean x = false;
// j < i 조건식을 통해서 계속 비교.
for (int j = 0; j < i; j++) {
if (num[i] == num[j]) { // 중복되는 값은 true로 저장.
x = true;
break;
}
}
// 중복되지 않은 값은 count++
if (!x) {
count++;
}
}
System.out.println(count);
}
}
# 입/출력 결과
# 과정
BufferedReader + InputStreamReader 클래스를 사용하여 입력값 받기.
int B = 42 저장.
int[] num에 10 크기만큼 선언.
int count = 0; 생성
for문으로 num[i] 마다 입력값 받아서 % B한 값 저장.
for문 + 중첩 for문을 사용하여 계산
: num[i]와 num[j]를 비교하는데, j < i 조건을 걸어서 하나씩 순차적으로 값을 비교하여 값이 같지 않으면 count가 증가되도록 계산
count 출력.
# 느낀 점
이번 문제를 풀면서 머리로는 계산이 되는데, 코드로 작성하려니 계속 실패했었다. 결국 chat-gpt의 도움을 얻어서 풀었다.
내가 작성한 코드는 같은 값을 count 해서 10에서 빼는건데, 같은 값들이 없으면 0이 출력되어 버린 점에서 막혔었다.
부족한 건 바로 boolean 타입을 활용해서 true, false로 수를 count 할 수 있다는 것이었다. bolean 타입을 활용해봐야겠다 생각은 했었는데 머리로는 코드가 안 떠올라서 포기했었는데..