반응형
츄르사려고 코딩하는 코집사입니다.
1. [SW expert Academy] SWEA 2005번 파스칼의 삼각형 자바(Java)
1) 난이도 : D2
2) 문제번호 : 2005번
3) 문제 출처
2. 문제
크기가 N인 파스칼의 삼각형을 만들어야 한다.
파스칼의 삼각형이란 아래와 같은 규칙을 따른다.
1. 첫 번째 줄은 항상 숫자 1이다.
2. 두 번째 줄부터 각 숫자들은 자신의 왼쪽과 오른쪽 위의 숫자의 합으로 구성된다.
N이 4일 경우,
N을 입력 받아 크기 N인 파스칼의 삼각형을 출력하는 프로그램을 작성하시오.
3. 제약사항
- 파스칼의 삼각형의 크기 N은 1 이상 10 이하의 정수이다. (1 ≤ N ≤ 10)
4. 입력
가장 첫 줄에는 테스트 케이스의 개수 T가 주어지고, 그 아래로 각 테스트 케이스가 주어진다.
각 테스트 케이스에는 N이 주어진다.
5. 출력
각 줄은 '#t'로 시작하고, 다음 줄부터 파스칼의 삼각형을 출력한다.
삼각형 각 줄의 처음 숫자가 나오기 전까지의 빈 칸은 생략하고 숫자들 사이에는 한 칸의 빈칸을 출력한다.
(t는 테스트 케이스의 번호를 의미하며 1부터 시작한다.)
6. 풀이
- 맨 처음 ArrayList를 사용했는데, 자꾸 Heap 영역을 초과해서, 다시 2차원 배열로 접근을 했다.
7. 소스 코드
import java.util.*;
public class Solution {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int T = sc.nextInt();// 테스트케이스 개수 입력
for(int tc=1;tc<=T;tc++) {
int N = sc.nextInt();
int[][] arr = new int[N][N];
for(int i=0;i<N;i++) {
for(int j=0;j<=i;j++) {
if(i==j || j==0) arr[i][j] = 1;
else {
arr[i][j] = arr[i-1][j-1] + arr[i-1][j];
}
}
}
System.out.printf("#%d\n",tc);
for(int i=0;i<N;i++) {
for(int j=0;j<=i;j++) {
System.out.print(arr[i][j] + " ");
}
System.out.println();
}
}
}
}
반응형
'알고리즘 > SW expert Academy' 카테고리의 다른 글
[SW expert Academy] SWEA 1234번 비밀번호 자바(Java) (0) | 2021.02.13 |
---|---|
[SW expert Academy] SWEA 1983번 조교의 성적 매기기 자바(Java) (0) | 2021.02.11 |
[SW expert Academy] SWEA 1970번 쉬운 거스름돈 자바(Java) (0) | 2021.02.11 |
[SW expert Academy] SWEA 1926번 간단한 369게임 자바(Java) (2) | 2021.02.11 |
[SW expert Academy] SWEA 1247번 최적 경로 자바(Java) (0) | 2021.02.10 |
[SW expert Academy] SWEA 1961번 숫자 배열 회전 자바(Java) (0) | 2021.02.09 |
[SW expert Academy] SWEA 1976번 시각 덧셈 자바(Java) (0) | 2021.02.09 |
[SW expert Academy] SWEA 1966번 숫자를 정렬하자 자바(Java) (0) | 2021.02.09 |
최근댓글