Study with me/프로그래머스 L0 마스터하기
프로그래머스 - L0 이차원배열대각선순회하기
외계나무
2024. 1. 16. 12:57
프로그래머스 - level 0 이차원 배열 대각선 순회하기
Brute-force로 하면 이중 for문으로 푸는 문제를
class Solution {
public int solution(int[][] board, int k) {
int answer = 0;
for(int i=0; i<board.length; i++) {
for(int j=0; j<board[0].length; j++) {
if(i+j <= k)
answer += board[i][j];
}
}
return answer;
}
}
이중 Stream으로 풀었을 때
import java.util.stream.IntStream;
class Solution {
public static int solution(int[][] board, int k) {
return IntStream.range(0, board.length)
.filter(i -> i <= k)
.map(i -> IntStream.range(0, board[i].length)
.filter(j -> j <= k - i)
.map(j -> board[i][j])
.sum())
.sum();
}
}
import java.util.stream.IntStream;
class Solution {
public int solution(int[][] board, int k) {
return IntStream.range(0, board.length)
.map(i -> IntStream.rangeClosed(0, Math.min(board[i].length - 1, k - i))
.map(j -> board[i][j])
.sum())
.sum();
}
}