특별한 이차원 배열 2(with.Java)
“특별한 이차원 배열 2” 문제에 대하여 알아본 글입니다.
코딩 테스트 문제를 풀며, 풀었던 문제에 대한 회고와 다른 풀이 방법을 알아보며, 알아가고자 합니다.
문제에 대해 먼저 알아보겠습니다.
문제
n × n 크기의 이차원 배열 arr이 매개변수로 주어질 때, arr이 다음을 만족하면 1을 아니라면 0을 return 하는 solution 함수를 작성해 주세요.
0 ≤ i, j < n인 정수 i, j에 대하여 arr[i][j] = arr[j][i]
입출력 예시
arr | result |
---|---|
[[5, 192, 33], [192, 72, 95], [33, 95, 999]] | 1 |
[[19, 498, 258, 587], [63, 93, 7, 754], [258, 7, 1000, 723], [587, 754, 723, 81]] | 0 |
문제에 대한 나의 풀이
class Solution {
public int solution(int[][] arr) {
int answer = 0;
for(int i = 0; i < arr.length - 1; i++){
for(int j = 0; j < arr.length; j++){
if(arr[i][j] != arr[j][i]){
return answer;
}
}
}
answer = 1;
return answer;
}
}
풀이 설명
int answer = 0;: 결과 값을 저장할 변수 answer를 초기화합니다.
for(int i = 0; i < arr.length - 1; i++) : 2차원 배열을 반복하며 주대각선을 기준으로 위쪽 절반만 확인합니다. (arr.length는 배열의 크기입니다.)
for(int j = 0; j < arr.length; j++) : 현재 행 i와 열 j에 대한 원소와 열 i와 행 j에 대한 원소를 비교하여 대칭 여부를 확인합니다.
if(arr[i][j] != arr[j][i]) : 만약 현재 원소와 대칭 위치의 원소가 다르다면 (대칭이 아닌 경우):
answer를 0으로 설정하고, 함수를 종료합니다.
answer = 1;: 모든 원소가 대칭인 경우, answer를 1로 설정합니다.
return answer;: 결과인 answer 값을 반환합니다.