[자바기초] 중간고사: 문제 해결 능력 기르기

2021. 3. 22. 22:26IT/JAVA

평균값 계산기

파라미터로 정수 배열 intArray를 받고 배열의 모든 값의 평균을 리턴해주는 메소드 computeAverage를 쓰세요. 리턴값의 자료형은 double입니다.

4.3333333
3.75
4.0
3.0

01 - 평균값 계산기.zip
0.00MB

 

두 원소의 차 중 최댓값 구하기

파라미터로 정수 배열 intArray를 받고, 두 원소의 차이 중 가장 큰 값을 리턴해주는 메소드 greatestDifference를 쓰세요. 리턴값의 자료형은 int입니다.

만약 원소 개수가 2개보다 작으면 0을 리턴해줍니다.

9
13
3
0
8
0

02 - 두 원소의 차 중 최댓값 구하기.zip
0.00MB

 

삼각형 그리기

파라미터로 정수형 height를 받고, 높이 height인 '직각 이등변 삼각형'을 출력해보세요. 출력 결과는 아래 템플릿을 참고하세요.


* * 
* * * 
----------

* * 
* * * 
* * * * 
* * * * * 
----------

* * 
* * * 
* * * * 
* * * * * 
* * * * * * 
* * * * * * * 
* * * * * * * * 
* * * * * * * * * 
* * * * * * * * * * 

03 - 삼각형 그리기.zip
0.00MB

 

피라미드 그리기

파라미터로 정수형 height를 받고, 높이 height인 '피라미드'를 출력해보세요. 출력 결과는 아래 템플릿을 참고하세요.

  *
 ***
*****
----------
    *
   ***
  *****
 *******
*********
----------
         *
        ***
       *****
      *******
     *********
    ***********
   *************
  ***************
 *****************
*******************

04 - 피라미드 그리기.zip
0.00MB

 

플로이드의 삼각형

이번 과제에서도 파라미터로 정수형 height를 받고, 높이가 height인 '직각 이등변 삼각형'을 출력할텐데요. 이번에는 * 대신 숫자가 순서대로 출력되는 플로이드의 삼각형입니다!



패딩 (Padding)

height가 5인 경우 가장 큰 값인 15는 두 자리 수입니다. 그러면 한 자리 수 값들을 출력할 때 앞에 띄어쓰기(" ")를 한 칸씩 해줘야 합니다.

이렇게 나오면 안 되고:

1
2 3
4 5 6
7 8 9 10
11 12 13 14 15

이렇게 나와야 합니다:

 1 
 2  3 
 4  5  6 
 7  8  9 10 
11 12 13 14 15

마찬가지로 height가 15인 경우 가장 큰 값인 120은 세 자리 수입니다. 따라서 한 자리 수 값들 앞에는 띄어쓰기 두 칸을 해줘야 하고, 두 자리 수 값들 앞에는 띄어쓰기 한 칸을 해줘야 합니다.

이렇게 나오면 안 되고:


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 32 33 34 35 36 
37 38 39 40 41 42 43 44 45 
46 47 48 49 50 51 52 53 54 55 
56 57 58 59 60 61 62 63 64 65 66 
67 68 69 70 71 72 73 74 75 76 77 78 
79 80 81 82 83 84 85 86 87 88 89 90 91 
92 93 94 95 96 97 98 99 100 101 102 103 104 105 
106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 

이렇게 나와야 합니다:

  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  32  33  34  35  36 
 37  38  39  40  41  42  43  44  45 
 46  47  48  49  50  51  52  53  54  55 
 56  57  58  59  60  61  62  63  64  65  66 
 67  68  69  70  71  72  73  74  75  76  77  78 
 79  80  81  82  83  84  85  86  87  88  89  90  91 
 92  93  94  95  96  97  98  99 100 101 102 103 104 105 
106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 

힌트

앞에 패딩을 넣는 게 이 과제의 가장 어려운 부분일 수 있습니다. 패딩을 넣기 위해서 먼저 알아야할 것은 가장 큰 값입니다. 가장 큰 값은 1부터 height까지의 합인데, 이를 구하기 위해서는 이 공식을 따르면 됩니다: height * (height + 1) / 2

예를 들어서 height가 5인 경우에 5 * (1 + 5) / 2는 15가 나오죠?

결과값을 문자열로 변환시키고, length 속성을 보면 최대값의 길이를 알 수 있습니다.


2 3 
4 5 6 
----------
 1 
 2  3 
 4  5  6 
 7  8  9 10 
11 12 13 14 15 
----------
  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  32  33  34  35  36 
 37  38  39  40  41  42  43  44  45 
 46  47  48  49  50  51  52  53  54  55 
 56  57  58  59  60  61  62  63  64  65  66 
 67  68  69  70  71  72  73  74  75  76  77  78 
 79  80  81  82  83  84  85  86  87  88  89  90  91 
 92  93  94  95  96  97  98  99 100 101 102 103 104 105 
106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 

05 - 폴로이드의 삼각형.zip
0.00MB