문제 설명
n x n 크기의 이차원 배열 arr이 매개변수로 주어질 때, arr이 다음을 만족하면 1을 아니라면 0을 return 하는 solution 함수를 작성해 주세요.
- 0 <= i, j < n인 정수 i, j에 대하여 arr[i][j] = arr[j][i]
제한사항
- 1 <= arr의 길이 = arr의 원소의 길이 <= 100
- 1 <= arr의 원소의 원소 <= 1,000
- 모든 arr의 원소의 길이는 같습니다.
입출력 예
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 = 1;
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length; j++) {
if (arr[i][j] != arr[j][i]) {
answer = 0;
break;
}
}
}
return answer;
}
}
바깥 for문이 arr의 길이만큼 순회합니다. 이는 행이 될 것입니다. 안쪽 for문이 arr의 i번째 원소의 길이만큼 순회합니다. 이는 열이 될 것입니다. 만약 arr[i][j]번째 원소와 arr[j][i]번째 원소가 같지 않다면 answer에 0을 할당하고 break문으로 for문을 빠져나옵니다. 대신 answer의 초기값이었던 0을 1로 변경해야 합니다.
이 코드는 초기값을 1로 하여 arr의 각 원소를 비교하고, 조건에 해당하지 않는 원소가 있다면 반환값을 0으로 바꾼 뒤 코드를 종료하는 것입니다. 하나라도 해당하지 않는 것이 있다면 조건이 성립하지 않기 때문입니다.
'프로그래머스 > Lv. 0(코딩 기초 트레이닝)' 카테고리의 다른 글
[프로그래머스 코딩테스트] 리스트 자르기(Java) (3) | 2023.05.14 |
---|---|
[프로그래머스 코딩테스트] 정사각형으로 만들기(Java) (0) | 2023.05.14 |
[프로그래머스 코딩테스트] l로 만들기(Java) (0) | 2023.05.13 |
[프로그래머스 코딩테스트] 커피 심부름(Java) (0) | 2023.05.13 |
[프로그래머스 코딩테스트] 꼬리 문자열(Java) (0) | 2023.05.13 |