[JS] 특별한 이차원 배열 2 programmers

0

코딩테스트

목록 보기
68/80
post-thumbnail

🎀 문제

n × n 크기의 이차원 배열 arr이 매개변수로 주어질 때, arr이 다음을 만족하면 1을 아니라면 0을 return 하는 solution 함수를 작성해 주세요.

  • 0 ≤ i, j < n인 정수 i, j에 대하여 arr[i][j] = arr[j][i]
function solution(arr) {
    var answer = 0;
    return answer;
}
solution([[5, 192, 33], [192, 72, 95], [33, 95, 999]]) // 1
solution([[19, 498, 258, 587], [63, 93, 7, 754], [258, 7, 1000, 723], [587, 754, 723, 81]]); // 0

🎀 내 답변

function solution(arr) {
    var answer = 0;
    for(i = 0; i < arr.length; i++){
        for(j = 0; j < arr[i].length; j++){
            if(arr[i][j] !== arr[j][i]){
                return 0
            }else {
                answer = 1
            }
        }
    }
    return answer;
}
solution([[5, 192, 33], [192, 72, 95], [33, 95, 999]]) // 1
solution([[19, 498, 258, 587], [63, 93, 7, 754], [258, 7, 1000, 723], [587, 754, 723, 81]]); // 0

만약 arr[0][1]과 arr[1][0]이 같다면 1을 반환하고 그렇지 않다면 0을 반환하면 된다.
1. 첫번째 solution 파라미터에서는 같지만, 두번째 solution에서는 같지 않으니, 바로 0을 반환시킨다.
2. 첫번째 solution에서는 0이 나오기 전까지 비교를 끝까지 진행시키면 된다. 0이 나오지 않았다면 1을 반환해주자.

🎀 코드 이쁘게 리펙토링

function solution(arr) {
    for(i = 0; i < arr.length; i++){
        for(j = 0; j < arr[i].length; j++){
            if(arr[i][j] !== arr[j][i]) return 0
        }
    }
    return 1;
}

사실 answer는 굳이 필요가 없었다~

profile
일단 해. 그리고 잘 되면 잘 된 거, 잘 못되면 그냥 해본 거!

0개의 댓글