반응형
접근 방법)
이 문제는 배열의 초깃값을 이용하여 문제를 쉽게 풀 수 있다.
int형 배열일 경우 초깃값은 0이고, boolean형 배열일 경우 초깃값은 false이다.
이러한 점을 이용하여 42의 크기를 가진 배열을 생성한 후, 10개의 입력값을 42로 나누고 각각 값에 해당하는 배열 번호의 배열 값을 1 또는 ture로 할당한 후 for문을 이용하여 배열 안에 1이나 true를 가진 배열의 개수를 출력하면 된다.
▷ int형 배열 초기값 바꾸기
for문을 이용하여 입력 값으로 주어진 42개 배열만 초기값과 다르게 값을 바꿔준다.
int[] arr = new int[42];
for(int i = 0; i < 10; i++){
int a = sc.nextInt(); // Scanner sc = new Scanner(System.in)
int b = a%42;
arr[b] = 1;
}
▷ boolean형 배열 초기값 바꾸기
for문을 이용하여 입력 값으로 주어진 28개 배열만 초기값과 다르게 값을 바꿔준다.
boolean[] arr = new boolean[42];
for(int i = 1; i <= 10; i++){
int a = sc.nextInt(); // Scanner sc = new Scanner(System.in)
int b = a%42;
g[b] = true;
}
이 방법을 이용해서 아래와 같이 코드를 완성해 보자.
정답 코드 1)
import java.util.Scanner;
class Main{
public static void main(String[] args){
Scanner s = new Scanner(System.in);
boolean arr[] = new boolean[42];
int num= 0;
for(int i = 0; i < 10; i++){
int a = s.nextInt();
int b = a%42;
arr[b] = true;
}
for(int j = 0; j < 42; j++){
if(arr[j] == true){
num++;
}
}
System.out.print(num);
}
}
정답 코드 2)
import java.util.Scanner;
class Main{
public static void main(String[] args){
Scanner s = new Scanner(System.in);
int arr[] = new int[42];
int num= 0;
for(int i = 0; i < 10; i++){
int a = s.nextInt();
int b = a%42;
arr[b] = 1;
}
for(int j = 0; j < 42; j++){
if(arr[j] == 1){
num++;
}
}
System.out.print(num);
}
}
반응형
'Baekjoon 자바 코드 > 1차원 배열' 카테고리의 다른 글
[백준] 1546번 평균 풀이 코드 (Java 자바) (0) | 2024.08.06 |
---|---|
[백준] 10811번 바구니 뒤집기 풀이 코드 (Java 자바) (0) | 2024.08.05 |
[백준] 5597번 과제 안 내신 분..? 풀이 코드 (Java 자바) (0) | 2024.07.31 |
[백준] 10813번 공 바꾸기 풀이 코드 (Java 자바) (0) | 2024.07.30 |
[백준] 10810번 공 넣기 풀이 코드 (Java 자바) (0) | 2024.07.29 |