반응형
[프로그래머스] Java 코딩테스트 연습 - 이차원 배열 대각선 순회하기
문제 출처
https://school.programmers.co.kr/learn/courses/30/lessons/181829
문제
2차원 정수 배열 board와 정수 k가 주어집니다.
i + j <= k를 만족하는 모든 (i, j)에 대한 board[i][j]의 합을 return 하는 solution 함수를 완성해 주세요.
풀이
2차원 배열은 표 형식으로 나타내서 보면 이해가 쉽다.
i \ j 0 1 2
0 0 2 3
1 1 2 3
2 2 3 4
3 3 4 5
위와 같이 i 행 j 열을 표로 나타내면 한 눈에 보기 좋다.
먼저 첫 번째 for문에서 행 인덱스 i를 0부터 board 배열의 끝까지 반복하고,
두 번째 for문에서 열 인덱스 j를 0부터 i행의 끝까지 반복한다.
이렇게 2중 for문을 이용하면 2차원 배열의 모든 원소를 순회할 수 있다.
if문으로 i + j <= k 조건을 성립할 때 해당 인덱스에 해당하는 값들을 더해 answer에 할당했다.
소스코드
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;
}
}
반응형
'코딩테스트연습 > [프로그래머스] Java' 카테고리의 다른 글
[프로그래머스] Java 코딩테스트 연습 - 2의 영역 (0) | 2023.08.09 |
---|---|
[프로그래머스] Java 코딩테스트 연습 - 가까운 수 (0) | 2023.08.08 |
[프로그래머스] Java 코딩테스트 연습 - 주사위 게임 3 (0) | 2023.08.06 |
[프로그래머스] Java 코딩테스트 연습 - 배열의 길이를 2의 거듭제곱으로 만들기 (0) | 2023.08.05 |
[프로그래머스] Java 코딩테스트 연습 - 진료 순서 정하기 (0) | 2023.07.27 |