하루코딩 알고리즘 브론즈 day16
102
자바칩
작성한 질문수 4
0
import java.util.Scanner;
import java.util.Arrays;
public class Main{
public static void main(String[] args){
int A[] = new int[31];
Scanner sc = new Scanner(System.in);
for(int i=0; i<28; i++) {
int number = sc.nextInt();
A[number]++;
}
for(int i=1; i<=30; i++)
if(A[i]==0)
System.out.println(i);
}
}이 코드에서 A[number]의 역할이 궁금합니다.
28개의 숫자가 주어졌을 때(숫자는 1에서 30까지고 중복x) 없는 숫자 2개를 찾아내서 출력하는 문제였는데요.
왜 int[31]인지도 궁금하구요.
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
A[number]의 역할은 주어진 숫자(number)가 등장한 횟수를 기록하는 것입니다. 이 코드에서는 1부터 30까지의 숫자 중에서 주어진 28개의 숫자에 해당하는 인덱스의 값을 증가시켜, 해당 숫자가 입력된 것을 표시합니다.
배열 A가 int[31]로 선언된 이유는 배열의 인덱스를 숫자 그대로 사용하기 위해서입니다. 자바에서 배열의 인덱스는 0부터 시작하기 때문에, 1부터 30까지의 숫자를 인덱스로 사용하려면 배열의 크기가 최소 31이 되어야 합니다. 이렇게 함으로써 A[1]부터 A[30]까지 각 숫자의 등장 여부를 표시할 수 있는 것입니다.
결과적으로, for문을 통해 A[i]의 값이 0인 i를 찾아낼 때, 그 i는 입력되지 않은 숫자를 의미하게 됩니다. 따라서, 이러한 방식으로 28개의 주어진 숫자 중에서 나타나지 않은 숫자 2개를 찾아낼 수 있습니다.
강의 수강 후 포트폴리오 준비 방향에 대해 조언 부탁드립니다.
2
41
1
강의 자료를 어디서 확인 할 수 있나요?
1
44
3
강의가 넘 좋아서 3번째 복습을 하고 있는데
1
36
3
실습 중 codex를 클로드코드로 대체 가능한지 문의
1
32
2





