📌 자바 배열 연습으로 푼 문제
백준 2738번 자료구조는 2차원 배열을 썼고 두 배열을 입력 받아서 새로운 배열에 성분을 더한 값을 저장해서 출력했다.
📌 더 알아 볼 부분
해답은 나중에 아래에 추가하도록 하겠다.
사진은 내 코드랑 맞았습니다!! 인증이다.


📌 새롭게 알게 된 내용
scanner로 입력 받은 변수들을 바로 배열의 크기에 넣을 수 있다는 점이다. C언어에서는 안돼서 배열 크기 무조건 백준에 나와있는 입력 값의 최대치로 설정하고 진행했는데 이제부터는 고쳐야겠다.
그니까 아래의 코드가 실행 된다는 것이다.
int n = scanner.nextInt();
int m = scanner.nextInt();
int matrixA[][] = new int[n][m];
문제풀이적인 부분에서 나는 두 개의 2차원 배열을 다 따로 저장해서 또 새로운 3번째 2차원 배열을 만들어서 더했는데 다른 분 방식을 보니까 한 번에 입력 받아서 더해버리셨다.
나는 3개의 2차원 배열을 썼는데 이 분은 1개의 2차원 배열을 쓴 셈이다. 메모리적인 효율로 봐서 내가 꼭 수정해야 하는 부분이다.
for(int i=0;i<2*n;i++){
for(int j=0;j<m;j++){
matrix[i%n][j] += scanner.nextInt();
}
}
이렇게 구현을 하셨다.
같은 크기의 두 2차원 배열을 더하는 거니까 행 수만 %2로 구분해서 두 번째 열을 지정하는 for문을 돌 때 같은 인덱스에 또 입력 받아 +=로 더해버리기 까지 완료해서 출력할 결과 행렬만 저장하셨다.
처음 보는 객체를 사용하셨는데 이건 나중에 다른 글에서 공부하고 기록하겠다.
링크도 여기에 달도록 하겠다.