-
순서대로 채우기, 격자로서의 2차원 배열_220713데일리 codeup/이차원 배열 2022. 7. 13. 22:16
순서대로 채우기
배열로 사각형 만들기
배열을 만들어서 아래 조건을 만족해 출력하는 프로그램을 작성해보세요.
- 첫 번째 행과 첫 번째 열은 모두 1로 초기화 합니다.
- 나머지 칸들은 바로 위의 값과 바로 왼쪽의 값을 더합니다.
- 크기는 5 * 5 입니다
#include <iostream> using namespace std; int main(){ int arr[5][5]; for(int i=0;i<5;i++){ for(int j=0;j<5;j++){ if(i==0||j==0) arr[i][j] = 1; else arr[i][j] = arr[i-1][j]+ arr[i][j-1]; } } for(int i=0;i<5;i++){ for(int j=0;j<5;j++) cout<<arr[i][j]<<' '; cout<<endl; } return 0; }
파스칼의 삼각형
행의 크기가 정수 n으로 주어집니다. 행의 크기가 n인 파스칼 삼각형을 출력하는 프로그램을 작성해보세요. 파스칼 삼각형이란 다음과 같은 형태로 나타나며, (i, j)에 적힌 숫자가 (i - 1, j - 1)에 적힌 숫자와 (i - 1, j)에 적힌 숫자의 합으로 나타납니다.
n = 5일때의 예
1 1 1 1 2 1 1 3 3 1 1 4 6 4 1
#include <iostream> using namespace std; int main(){ int n; cin >> n; int arr[n][n]; for(int i=0;i<n;i++){ for(int j=0;j<i+1;j++){ if(j==0||i==j) arr[i][j] = 1; else arr[i][j] = arr[i-1][j-1] + arr[i-1][j]; } } for(int i=0;i<n;i++){ for(int j=0;j<i+1;j++) cout<<arr[i][j]<<' '; cout<<endl; } return 0; }
격자로 사각형 만들기
아래 조건을 만족하도록 격자를 만들어 출력하는 프로그램을 작성해보세요.
- 첫 번째 행과 첫 번째 열에는 모두 1이 들어갑니다.
- 나머지 칸들은 바로 위의 값과 바로 왼쪽 값, 그리고 왼쪽 위의 값의 합이 되어야 합니다.
- 크기는 n x n 입니다.
입력
5
출력:
1 1 1 1 1 1 3 5 7 9 1 5 13 25 41 1 7 25 63 129 1 9 41 129 321
#include <iostream> using namespace std; int main(){ int n; cin >> n; int arr[n][n]; for(int i=0;i<n;i++){ for(int j=0;j<n;j++){ if(i==0||j==0) arr[i][j] = 1; else arr[i][j] = arr[i-1][j] + arr[i][j-1]+arr[i-1][j-1]; } } for(int i=0;i<n;i++){ for(int j=0;j<n;j++) cout<<arr[i][j]<<' '; cout<<endl; } return 0; }
격자로서의 2차원 배열
동전이 있는 위치
n * n 크기의 격자 위에 m개의 동전이 각각 어느 위치에 있는지 주어졌을 때, 현재 격자의 상태를 출력하는 프로그램을 작성해보세요.
입력
2 3 1 1 1 2 2 2
출력
1 1 0 1
#include <iostream> using namespace std; int main(){ int n,m,r,c; cin >> n >> m; int arr[n][n] = {}; for(int i=0;i<m;i++){ cin >> r >> c; arr[r-1][c-1] = 1; } for(int i=0;i<n;i++){ for(int j=0;j<n;j++) cout<<arr[i][j]<<' '; cout<<endl; } return 0; }
격자에 점 그리기
m개의 점이 주어졌을 때 각각의 점을 n * n 크기의 격자에 번호를 표시하여 출력하는 프로그램을 작성해보세요. 점의 번호는 정보가 따로 주어지진 않고 입력된 순서대로 부여됩니다. 즉 첫 번째로 입력된 점은 1, k번째로 입력된 점은 k입니다.
입력
2 3 1 1 1 2 2 2
출력
1 2 0 3
#include <iostream> using namespace std; int main(){ int n,m,r,c,cnt = 1; cin >> n >> m; int arr[n][n] = {}; for(int i=0;i<m;i++){ cin >> r >> c; arr[r-1][c-1] = cnt; cnt++; } for(int i=0;i<n;i++){ for(int j=0;j<n;j++) cout<<arr[i][j]<<' '; cout<<endl; } return 0; }
격자 모양 출력하기
n x n 크기의 격자의 칸 위에 m 개의 점이 놓여져 있습니다.
각 점의 크기는 해당 칸의 행 번호와 열 번호의 곱이 됩니다.
각 점의 위치에 해당하는 정보가 주어질 때, 격자의 모양을 출력하는 프로그램을 작성해보세요.
단, 행과 열의 번호는 1부터 시작됩니다.
입력
3 3 1 1 3 2 3 3
출력
1 0 0 0 0 0 0 6 9
#include <iostream> using namespace std; int main(){ int n,m,r,c; cin >> n >> m; int arr[n][n] = {}; for(int i=0;i<m;i++){ cin >> r >> c; arr[r-1][c-1] = r*c; } for(int i=0;i<n;i++){ for(int j=0;j<n;j++) cout<<arr[i][j]<<' '; cout<<endl; } return 0; }
'데일리 codeup > 이차원 배열' 카테고리의 다른 글
2차원 배열과 패턴_220713 (0) 2022.07.13 새로운 2차원 배열의 선언_220713 (0) 2022.07.13 배열의 합_220713 (0) 2022.07.13