반응형
[ Contents ]
1. 문제 (링크 참조)
2. 문제 풀이
2차원 배열에서, 왼쪽 또는 아래의 숫자가 크도록 하는 증가 배열을 만들어야 합니다. 최우측하단의 숫자가 K 이하라면 YES와 함께 증가 배열을 출력하고, 그렇지 않으면 NO를 출력합니다.
3. 코드
import sys
input = sys.stdin.readline
# 입력
n, m, k = map(int, input().split())
# 대각선마다 1씩 늘어남
"""
1 2 3 4 5 6
2 3 4 5 6 7
3 4 5 6 7 8
"""
lst = []
for i in range(n):
tmp = []
for j in range(m):
tmp.append(i+j+1)
lst.append(tmp)
if lst[n-1][m-1] <= k:
print("YES")
for i in lst:
print(" ".join(map(str, i)))
else:
print("NO")
K이하의 증가배열은 여러 경우의 수가 나올 수 있지만, 최우측하단의 수가 가장 작은 최적의 경우를 구합니다. 증가배열은 대각선마다 1씩 늘어나면 성립하며, 이렇게 해서 나온 최우측하단의 수가 K이하이면 출력합니다.
반응형
'Algorithm' 카테고리의 다른 글
[구현/수학] 백준 27868 On My Way Dorm - 파이썬(Python) (0) | 2023.05.05 |
---|---|
[구현/수학] 백준 27724 팝핀 소다 - 파이썬(Python) (0) | 2023.05.04 |
[구현/수학] 백준 27522 카트라이더: 드리프트 - 파이썬(Python) (0) | 2023.05.02 |
[구현/수학] 백준 27465 소수가 아닌 수 - 파이썬(Python) (0) | 2023.05.01 |
[구현/수학] 백준 27159 노 땡스! - 파이썬(Python) (0) | 2023.04.30 |
댓글