[알고리즘문제풀기] 이차원 배열 대각선 순회하기

silver's avatar
Sep 05, 2025
[알고리즘문제풀기] 이차원 배열 대각선 순회하기

문제

내가 작성한 정답

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++){ answer += (i+j<= k)? board[i][j]: 0; } } return answer; } }

다른 사람들의 정답

class Solution { public static int solution(int[][] board, int k) { return IntStream.range(0, board.length) .filter(i -> i <= k) // map으로 각 i에 대해 내부 IntStream 생성: .map(i -> IntStream.range(0, board[i].length) // filter로 j가 k - i 이하인 경우만 필터링 (대각선 이하 영역만 대상) .filter(j -> j <= k - i) // map으로 board[i][j] 값을 가져와서 sum()으로 해당 행의 조건에 맞는 열들의 합을 구함 .map(j -> board[i][j]) .sum()) .sum(); // 최종적으로 외부 sum()으로 모든 i에 대해 누적 합산 } }
Share article

silver