728x90
반응형
27648번: 증가 배열 만들기
문제
https://www.acmicpc.net/problem/27648
27648번: 증가 배열 만들기
첫째 줄에 $N$, $M$, $K$가 주어진다. $\left(1 \le N , M \le 1\,000,1 \le K \le 100\,000 \right)$
www.acmicpc.net
풀이
맨 왼쪽 위부터 맨 오른쪽 아래 칸까지 이동하는데 각 칸의 수가 증가하도록 구성해야 한다. 이 배열을 만들 수 있는지 여부와 만들 수 있다면 가능한 것 중 하나를 출력하면 된다.
대각선을 왼쪽 위부터 오른쪽으로 차례대로 1, 2, 3,...으로 증가시키도록 구성하면 된다.
ex)
1 2 3 4 5
2 3 4 5 6
3 4 5 6 7
실제 배열을 만들 필요도 없이 출력할 수 있다. 맨 왼쪽 위에서 맨 오른쪽 아래 칸까지 가는 칸은 N+M-1칸이므로 K가 이보다 작으면 배열을 만들 수 없다.
코드
#include <bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(NULL);
int n, m, k;
cin >> n >> m >> k;
if (k < n + m - 1) {
cout << "NO\n";
return 0;
}
cout << "YES\n";
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++)
cout << i + j + 1 << ' ';
cout << '\n';
}
return 0;
}
728x90
반응형
'Problem Solving > BOJ' 카테고리의 다른 글
[백준 / BOJ] C++ 1456 거의 소수 (0) | 2023.03.04 |
---|---|
[백준 / BOJ] C++ 1436 영화감독 숌 (0) | 2023.03.04 |
[백준 / BOJ] C++ 12020 LU 분해 (0) | 2023.03.04 |
[백준 / BOJ] C++ 4179 불! (0) | 2023.03.03 |
[백준 / BOJ] C++ 5719 거의 최단 경로 (0) | 2023.03.03 |