더북(TheBook)

잠깐만요

코드가 마음에 들지 않나요? 맞습니다. 이 코드처럼 일부만 바뀌고 전체적인 틀이 같을 때는 복사 ‒ 붙여넣기를 이용하여 틀은 유지하고 일부만 수정하는 경우가 많습니다. 이렇게 하면 실수를 잡아내기 힘들고 전체 흐름 단위에서 수정이 필요할 때 복사 ‒ 붙여넣기를 한 모든 곳에서 같은 수정을 해야 합니다. 이후 살펴볼 dx, dy로 방향을 정하는 방법에서 이 코드를 어떻게 개량할 수 있을지 살펴볼 것입니다.

 

4. 채워진 숫자를 차례대로 1차원 배열에 옮겨서 반환

triangle에 모든 숫자가 채워졌습니다. 이제 채운 숫자들을 1차원 배열로 구성하여 반환하면 됩니다. v 변수에는 채워 넣은 마지막 숫자 + 1이 들어 있으므로 v – 1이 채워 넣은 숫자 개수가 됩니다. 따라서 1차원 배열은 v – 1의 크기로 선언해줄 수 있습니다.

int[] result = new int[v - 1];

2차원 배열에서는 삼각형이 왼쪽으로 몰려 있는 직각 삼각형 모양으로 들어 있다는 것을 이용하면 다음과 같이 이중 반복문으로 1차원 배열에 숫자를 넣어 줄 수 있습니다.

int index = 0;
for (int i = 0; i < n; i++) {
    for (int j = 0; j <= i; j++) {
        result[index++] = triangle[i][j];
    }
}
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.