주어진 2차원 배열의 복사를 이용하여 확장하기알고리즘/기초2023. 8. 8. 01:37
Table of Contents
자바 라이브러리의 메서드를 사용하지 않고 2차원 배열을 확장하는 코드이다
아래 배열을 가로세로 각각 1씩확장하고, 확장된 마지막 행과 열에는 각 행과 열의 총합을 저장하고 출력한다.
int[][] score = {
{100, 100, 100},
{20, 20, 20} ,
{30, 30, 30} ,
{40, 40, 40} ,
{50, 50, 50} };
자바는 이미 생성된 배열을 자체적으로 확장 할 수 없기때문에
기존(score배열)보다 +1만큼 큰 새로운 배열을 선언하고 생성한다.
int[][] result = new int[score.length+1][score[0].length+1];
result[i][j] = score[i][j]를 통해 기존 score배열을 result배열에 복사해주고, 마지막요소에 각각 행과 열의 합들을 넣어준다.
for(int i=0; i<score.length; i++) {
for(int j=0; j<score[i].length; j++) {
result[i][j] = score[i][j];
result[score.length][j] += result[i][j];
result[i][score[0].length] += result[i][j];
result[score.length][score[0].length] += result[i][j];
System.out.print(result[i][j]);
}System.out.println();
}
전체코드
public class Main {
public static void main(String[] args) {
int[][] score = {
{100, 100, 100},
{20, 20, 20} ,
{30, 30, 30} ,
{40, 40, 40} ,
{50, 50, 50} };
int[][] result = new int[score.length+1][score[0].length+1];
for(int i=0; i<score.length; i++) {
for(int j=0; j<score[i].length; j++) {
result[i][j] = score[i][j];
result[score.length][j] += result[i][j];
result[i][score[0].length] += result[i][j];
result[score.length][score[0].length] += result[i][j];
System.out.print(result[i][j]);
}System.out.println();
}
System.out.println();
System.out.println();
for(int i=0; i<result.length; i++) {
for(int j=0; j<result[i].length; j++) {
System.out.printf("%4d" ,result[i][j]);
}System.out.println();
}
}
}
출력
100100100
202020
303030
404040
505050
100 100 100 300
20 20 20 60
30 30 30 90
40 40 40 120
50 50 50 150
240 240 240 720
728x90
'알고리즘 > 기초' 카테고리의 다른 글
간단한 암호화 프로그램 (0) | 2023.08.08 |
---|---|
주어진 배열을 시계방향으로 회전시키는 프로그램 (0) | 2023.08.07 |
입력된 데이터를 읽고 각 숫자의 개수를 출력하는 프로그램 (0) | 2023.08.07 |
거스름 돈 계산하기 (0) | 2023.08.07 |
회문수(palindrome) 구하기 (0) | 2023.08.06 |
@leegeonwoo :: geonwoo
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!