행렬
-
[백준 1080번] 행렬 (Java 풀이)Algorithm/Greedy Algorithm 2022. 2. 18. 16:44
백준알고리즘 1080번 : 행렬 예제에서 유추할 수 있듯 3x3크기의 부분행렬을 한번에 바꾸기 때문에 그보다 작은 행렬이 문제로 나온다면 다를 경우 -1, 같을 경우 0을 출력하는 것으로 판단할 수 있다. 문제는 3x3이상의 행렬인데, 이 경우에는 부분행렬중 좌측 최상단의 값만 이용하여 비교하는 식으로했다. 좌측 상단에서 우측 하단으로 탐색하면 언제나 좌측 최상단의 값은 해당 탐색 이후로는 변경할 수 없는 값이된다. 이를 바탕으로 행렬 A와 행렬 B의 좌측 최상단의 값만 비교하고, 같으면 다음 탐색으로 pass, 다르면 최상단을 포함한 3x3크기의 부분행렬을 모두 바꾸어주는 방식으로 전개한다. 메소드를 더 다양하게 사용했더라면 코드 길이는 훨씬 줄었을 문제이다. 그래도 소요시간 자체는 오래걸리지 않았다...