프로그래머스에는 행렬더하기,음양 더하기 각 두 개의 문제로 나뉘었던 문제들이다. 하지만 모의고사에선 이 행렬과 음양의 조건들을 동시에 적용시켜 입출력을 해야 했다.
내가 쓴 코드
import java.util.Arrays;
public class Main {
public int[][] solution(int[][] arr1, int[][] arr2, boolean[][] signs) {
int[][] answer = {{}};
answer = arr1;
for(int i=0; i<arr1.length; i++){
for (int j =0; j<arr1[0].length; j++){
if(signs[i][j]){
answer[i][j] = arr1[i][j] + arr2[i][j];
}else {
answer[i][j] = -arr2[i][j] -arr1[i][j];
}
}
}
return answer;
}
public static void main(String[] args) {
Main method = new Main();
int[][] arr1 = {{5,7,1},{2,3,5}};
int[][] arr2 = {{5,1,6},{7,5,6}};
boolean[][] signs={{true,true,false},{false,true,false}};
System.out.println(Arrays.deepToString(method.solution(arr1, arr2, signs)));
}
}
1.배열과 행렬을 구분 시켜야 한다. 2.true false 값을 구분짓는 boolean메소드도 잘 생각하자. 3.우선 arr1값은 i arr2값은 j로 선언해준다. 4.코드 마지막줄엔 출력은 값은 answer이므로 반복문을 돌리기 전 answer를 arr1로 초기화시켜준다. 5. 더하기는 문제가 안된다. 그냥 if를 써서 더하기만 하면 되는 문제. 6.하지만 빼기같은 경우 arr2값 앞쪽에 -를 해준다. 뒤에는 그냥 - 해주면 해결
댓글