본문 바로가기
카테고리 없음

알고리즘 테스트 모의고사 풀이

by 소년수 2022. 7. 21.

두번째 모의고사 알고리즘 테스트 문제이다.

프로그래머스에는 행렬더하기,음양 더하기 각 두 개의 문제로 나뉘었던 문제들이다. 하지만 모의고사에선 이 행렬과 음양의 조건들을 동시에 적용시켜 입출력을 해야 했다.

내가 쓴 코드

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값 앞쪽에 -를 해준다. 뒤에는 그냥 - 해주면 해결

실행결과

정상출력 된다. 성공

댓글