프로그래머스/Lv. 0(코딩 기초 트레이닝)

[프로그래머스 코딩테스트] 이차원 배열 대각선 순회하기(Java)

Sigfriede 2023. 5. 10. 01:20

  문제 설명

  2차원 정수 배열 board와 정수 k가 주어집니다.

  i + j <= k를 만족하는 모든 (i, j)에 대한 board[i][j]의 합을 return 하는 solution 함수를 완성해 주세요.

 

  제한사항

  • 1 <= board의 길이 <= 100
  • 1 <= board[i]의 길이 <= 100
  • 1 <= board[i][j] <= 10,000
  • 모든 board[i][j]의 길이는 같습니다.
  • 0 <= k < board의 길이 + board[i]의 길이

 

  입출력 예

board k result
[[0, 1, 2], [1, 2, 3], [2, 3, 4], [3, 4, 5]] 2 8
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[i].length; j++) {
                if (i + j <= k) {
                    answer += board[i][j];
                }
            }
        }
        return answer;
    }
}

  for문이 board의 길이만큼 순회합니다. 이는 배열의 행이 됩니다. for문이 board[i]의 길이만큼 순회합니다. 이는 배열의 열이 됩니다. 만약 i와 j를 더한 값이 k보다 작거나 같다면 answer에 board의 i번째 행, j번째 열의 원소를 더하기 할당합니다. 조건에 해당하지 않는 원소는 배제된 채 셈이 반복될 것입니다.