
내가 작성한 코드
class Solution {
public int solution(int[][] board, int k) {
int answer = 0;
for (int i = 0; i < board.length; i++) {
if( i > k) break;
for (int j = 0; j < board[i].length; j++) {
if( i + j <= k) answer += board[i][j];
else break;
}
}
return answer;
}
}
다른 사람의 코드
import java.util.stream.IntStream;
class Solution {
public static int solution(int[][] board, int k) {
return IntStream.range(0, board.length) // 0부터 board.length-1까지
.filter(i -> i <= k) // i가 k보다 작거나 같을 때만
.map(i -> IntStream.range(0, board[i].length) // 0부터 board[i].length-1까지
.filter(j -> j <= k - i) // j가 k-i보다 작거나 같을 때만
.map(j -> board[i][j])
.sum()) // board[i][j]의 합을 구함
.sum(); // 모든 i에 대해 구한 합을 더함
}
}
Share article