호쌤
호쌤 Just For Fun

[Java] 2차 배열 연습문제

크리에이티브 커먼즈 라이선스 ITPAPER(호쌤,쭈쌤)에 의해 작성된 ≪[Java] 2차 배열 연습문제≫은(는) 크리에이티브 커먼즈 저작자표시-비영리-동일조건변경허락 4.0 국제 라이선스에 따라 이용할 수 있습니다.
이 라이선스의 범위 이외의 이용허락을 얻기 위해서는 leekh4232@gmail.com으로 문의하십시오.

[Java] 2차 배열 연습문제

2차 배열 연습문제 입니다.

#01. 아이템의 판매가격 구하기

ItemSale.java

아래와 같이 게임 아이템이 보관되어 있는 인벤토리가 있다.

장바구니

이 중에서 첫 번째 줄에 있는 아이템들을 판매하려고 한다.

보유수량가격이 하나의 행을 구성하는 2차 배열을 정의하고 이 아이템들을 모두 판매했을 때 얻을 수 있는 골드(G)가 얼마인지 정수형태로 출력하는 프로그램을 작성하시오.

단, 판매시에는 원래 가격의 90%만 받을 수 있다고 한다.

출력결과
1
총 판매수익: 404816.1G
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public class ItemSale {
    public static void main(String[] args) {
        int[][] inven = {
                { 500, 291 },   // 0행의 0번째 -> 아이템 수, 1번째 -> 단가
                { 320, 586 },   // 1행의 0번째 -> 아이템 수, 1번째 -> 단가
                { 100, 460 },
                { 120, 558 },
                { 92, 18},
                { 30, 72 }
            };

        // 전체 합을 계산할 변수
        int total = 0;

        // 배열의 1차 길이가 아이템의 수를 의미한다.
        // 2차원의 0번째와 1번째를 묶어서 계산한다.
        for (int i=0; i < inven.length; i++) {
            total += (int)(inven[i][0] * 0.9 * inven[i][1]);
        }

        System.out.printf("총 판매수익: %dG\n", total);
    }
}

#02. 이차 배열의 칸 채우기

CalTable.java

5행 7열의 배열을 정의하고 다음의 요구사항을 충족하는 코드를 구현하시오.

  1. 이 배열의 0번째 행에 대한 0번째, 1번째 칸은 0이 저장되어 있습니다.
  2. 이 배열의 4번째 행에 대한 5번째, 6번째 칸은 0이 저장되어 있습니다.
  3. 그 외의 나머지 칸에는 1부터 순차적으로 증가하는 값이 차례대로 저장되어 있습니다.
  4. 출력시에는 값이 0이면 탭키만 출력하세요.
  5. 값이 숫자인 경우는 빈자리를 공백으로 채우는 2자리 숫자 형식으로 출력한 다음 탭 키를 출력하세요.
  6. 한 행의 모든 원소가 한 줄에 출력되고 각 행단위로 줄바꿈이 되도록 하세요.
출력결과
1
2
3
4
5
                 1       2       3       4       5
 6       7       8       9      10      11      12
13      14      15      16      17      18      19
20      21      22      23      24      25      26
27      28      29      30      31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
public class CalTable {
    public static void main(String[] args) {
        int[][] cal = new int[5][7];

        int count = 1;

        for (int i=0; i<cal.length; i++) {
            for (int j=0; j<cal[i].length; j++) {
                if (i == 0 && (j == 0 || j == 1)) {
                    cal[i][j] = 0;
                } else if (i == 4 && (j == 5 || j == 6)) {
                    cal[i][j] = 0;
                } else {
                    cal[i][j] = count++;
                }

                if (cal[i][j] == 0) {
                    System.out.printf("\t");
                } else {
                    System.out.printf("%2d\t", cal[i][j]);
                }
            }

            System.out.println();
        }
    }
}

if문의 조건을 아래와 같이 일괄 설정하는 것도 가능

1
2
3
4
5
if ( (i == 0 && (j == 0 || j == 1)) || (i == 4 && (j == 5 || j == 6))  ) {
                    cal[i][j] = 0;
} else {
    cal[i][j] = count++;
}

크리에이티브 커먼즈 라이선스 ITPAPER(호쌤,쭈쌤)에 의해 작성된 ≪[Java] 2차 배열 연습문제≫은(는) 크리에이티브 커먼즈 저작자표시-비영리-동일조건변경허락 4.0 국제 라이선스에 따라 이용할 수 있습니다.
이 라이선스의 범위 이외의 이용허락을 얻기 위해서는 leekh4232@gmail.com으로 문의하십시오.

comments powered by Disqus