문제
내가 작성한 정답
class Solution {
public int solution(int[][] arr) {
for(int i=0; i<arr.length; i++){
for(int j=0; j<arr[0].length; j++){
if(arr[i][j]==arr[j][i]) continue;
else return 0;
}
}
return 1;
}
}
stream1 - findAny
import java.util.stream.*;
class Solution {
public int solution(int[][] arr) {
return IntStream.range(0,arr.length)
.flatMap(i-> IntStream.of(IntStream.range(0,arr[0].length)
.filter(j->arr[i][j]!=arr[j][i])
.map(j->1) // 조건을 만족하지 않는 경우에 1을 부여
.findAny() // 하나라도 찾으면 1 이상
.orElse(0)) // 모두 다 0이라면 만족하는 1 출력해야함
).sum()==0?1:0;
}
}
stream2 - allMatch
import java.util.stream.IntStream;
class Solution {
public int solution(int[][] arr) {
return IntStream.range(0, arr.length)
.allMatch(i -> IntStream.range(0, arr[i].length)
.allMatch(j -> arr[i][j] == arr[j][i])) ? 1 : 0;
}
}
Share article