반응형

https://www.acmicpc.net/problem/10836

 

10836번: 여왕벌

입력의 첫 줄에는 격자칸의 가로와 세로 크기 M(2 ≤ M ≤ 700)과 날짜 수 N(1 ≤ N ≤ 1,000,000)이 자연수로 주어진다. 첫날 아침의 애벌레 크기는 모두 1이므로 입력에 주어지지 않는다. 다음 N개의

www.acmicpc.net

 

 

[ 문제풀이 ]

 

1. 1열을 제외한 나머지 열은 1행의 값과 동일하기 때문에 맨 왼쪽 1열과 맨 위쪽 1행의 값만 갱신해 주면 됩니다.

 

2. arr[1400] 배열을 만들어서 입력되는 수열대로 값을 증가시켜 줍니다.

 

3. 0 ~ M - 1 인덱스는 맨 왼쪽 1 열이므로 M - 1부터 0까지 for문을 돌면서 1열을 출력하고, 2열부터는 M ~ 2 * M - 1 인덱스의 값을 출력해 줍니다.

 

[ 소스코드 ]

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
#include<iostream>
 
using namespace std;
 
int M, N;
int arr[1400];
 
int main()
{
    scanf("%d %d", &M, &N);
 
    for (int i = 0; i < N; i++) {
        int n[3];
        int idx = 1;
        scanf("%d %d %d", &n[0], &n[1], &n[2]);
 
        for (int i = n[0]; i < n[0]+n[1]; i++) {
            arr[i] += 1;
        }
 
        for (int i = n[0] + n[1]; i < 2 * M - 1; i++) {
            arr[i] += 2;
        }
    }
 
    for (int i = M - 1; i >= 0; i--) {
        printf("%d ", arr[i] + 1);
        for (int j = M; j < 2 * M - 1; j++) {
            printf("%d ", arr[j] + 1);
        }
        printf("\n");
    }
}
cs
반응형

+ Recent posts