https://school.programmers.co.kr/learn/courses/30/lessons/12950
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
import java.util.Arrays;
public class programmer_2 {
public static void main(String[] args) {
int[][] a = {{1,2},{2,3}};
int[][] b = {{3,4},{5,6}};
Solution2 sdf = new Solution2();
System.out.println(Arrays.deepToString(sdf.solution(a, b)));
}
static class Solution2 {
public int[][] solution(int[][] arr1, int[][] arr2) {
int[][] answer = new int[arr1.length][arr1[0].length];
for(int i = 0; i < arr1.length; i++) {
for(int j = 0; j < arr1[0].length; j++) {
answer[i][j] = arr1[i][j] + arr2[i][j];
}
}
return answer;
}
}
}
일단 굉장히 정석으로 풀었다. 알아되야 할점은 1. 2차원 배열 사용하는 방법 2. arrays.deepToSTring이다.
1. 2차원 배열 사용하는 방법
- 먼저, answer의 배열의 크기를 설정해주고 초기화 해줄 필요가 있다. 문제에서 보면 2행, 2열을 가진 2차원 배열이다.
- 그렇다면, 어떻게 answer을 2행, 2열을 가진 2차원 배열로 만들 수 있을까?
- 답은 두가지가 있다.
- int[][] answer = new int[arr1.length][arr1[0].length];
풀어서 쓰지만 행의 길이가 2이고 arr1의 0번째의 길이가 2인 즉, 2행 2열을 가진 2차원 배열로 선언해주는 방식이다. 굉장히 정석적인 방법이다. - answer = arr1;
어차피 배열의 크기가 똑같기 때문에 answer을 0으로 선언 하는 방식이다. 이경우에는 코드가 살짝 달라진다.
- int[][] answer = new int[arr1.length][arr1[0].length];
int[][] answer = {};
answer = arr1;
for(int i=0; i<arr1.length; i++){
for(int j=0; j<arr1[0].length; j++){
answer[i][j] += arr2[i][j];
- 그 뒤 2중 for문을 통해 문제를 해결해주면 된다. 간단한 문제이지만 2차원 배열에 대한 지식이 없다면 풀 수 없는 문제이다.
2. arrays.deepToString
- Arrays.deepToString() 메소드는 다차원 배열을 출력할 때 사용하는 메소드이다.
- Arrays.toString()과 달리, 이차원 배열도 올바르게 출력할 수 있다. 따라서, 위 코드에서는 deepToString() 메소드를 이용하여 이차원 배열 arr을 출력한다.
'개발자 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] JAVA_직사각형 별 찍기 (0) | 2023.04.17 |
---|---|
[프로그래머스] JAVA_부족한 금액 계산하기 (0) | 2023.04.15 |
[프로그래머스] JAVA_문자열뒤집기_StringBuffer/StringBuilder (0) | 2023.01.25 |
[JavaScript] 표 헤더 정렬구현 및 필터 구현 (0) | 2023.01.25 |
[SQL_ORACLE]프로그래머스_년, 월, 성별 별 상품 구매 회원 수 구하기_DISTINCT 활용 (2) | 2022.12.30 |