1 minute read


세번째 실력진단평가

코드트리 첫 실력진단평가를 본지 벌써 2주가 지나갔다. 그동안 하루에 한문제만 풀었다.

또 3번째 2차원 배열 문제를 10분안에 못 풀었다. 1분만 더 있었으면 좋았을텐데 아쉽다.

결과

이번 점수는 446점이 나왔다.
화면 캡처 2023-09-25 231446

점수가 오르긴 한걸 보니 기분은 좋았다. 하지만 알고리즘 구현능력이 올랐다기 보단 시험을 세번째 보니 환경에 익숙해져서 코딩 속도가 빨라져서 나온 점수 같았다.


진단 요약

화면 캡처 2023-09-25 231748

2차원 배열 문제들을 더 풀어봐야겠다.

인상 깊은 문제

배열로 사각형 만들기

문제 설명

배열을 만들어서 아래 조건을 만족해 출력하는 프로그램을 작성해보세요.

첫 번째 행과 첫 번째 열은 모두 1로 초기화 합니다. 나머지 칸들은 바로 위의 값과 바로 왼쪽의 값을 더합니다. 크기는 5 * 5 입니다.


제한사항

시간 제한: 1000ms 메모리 제한: 80MB


입력 예

출력 예

1 1 1 1 1
1 2 3 4 5
1 3 6 10 15
1 4 10 20 35
1 5 15 35 70


나의 풀이 코드

public class Main {
    public static void main(String[] args) {
        int n = 5;
        int[][] arr2d = new int[n][n];

        for (int i=0;  i<n; i++) {
            arr2d[i][0] = 1;
        }
        for (int j=0; j<n; j++) {
            arr2d[0][j] = 1;
        }

        for (int i=1; i<n; i++) {
            for (int j=1; j<n; j++) {
                arr2d[i][j] = arr2d[i-1][j] + arr2d[i][j-1] ;
            }
        }

        for (int i = 0; i < n; i++) {
            for (int j = 0; j < n; j++) {
                System.out.print(arr2d[i][j] + " ");
            }
            System.out.println();
        }

    }
}

배운점

for(int i = 0; i < 5; i++) {
    arr[i][0] = 1;
    arr[0][i] = 1;
}

시간복잡도는 달라지지 않겠지만 그래도 행과 열을 함께 초기화 할 생각을 못했다. 센스있게 풀자.

Leave a comment