소스 코드
T = int(input())
for tc in range(1,1+T):
n,m = map(int,input().split())
# 밭
lst = [list(1 for _ in range(n)) for q in range(m)]
# 심은 콩의 수
res = 0
for w in range(m):
for e in range(n):
# 콩을 못 심는 곳이 아니고
if lst[w][e] == 1:
# 범위 안에 있으면
# 거리가 2인 지점을 콩을 심지 못하게 0 으로 갱신
if w+2 < m:
lst[w+2][e] = 0
if e+2 < n:
lst[w][e+2] = 0
# 콩의 수 추가
res += 1
print('#{} {}'.format(tc,res))
해결 방법
1. x,y의 위치(콩을 심을 위치)와 2만큼의 거리에 있는 곳은 콩을 심지 못함
ex) x,y가 0,0일 때, [0,2]와 [2,0]은 콩을 심지 못함
2. 이를 반복하면, 4x4 크기의 밭일 때
ㅇ | ㅇ | X | X |
ㅇ | ㅇ | X | X |
X | X | ㅇ | ㅇ |
X | X | ㅇ | ㅇ |
의 형태로 콩을 심을 수 있음(ㅇ = 콩을 심은 곳, X = 콩을 심지 못하는 곳)
느낀 점
ps. 개인적인 코드와 코드를 작성의 이유를 적은 것입니다.
오류나 적절치 않은 문법이 존재할 수 있으며, 다른 분들께는 굉장히 비효율적인 방법으로 여겨질 수 있습니다.
혹시 개선 사항, 오류 및 문제에 대한 수정 사항 등을 댓글로 남겨주신다면 감사한 마음으로 배우고 수정하겠습니다.
'코딩 문제해결 > 문제 풀이.SWEA' 카테고리의 다른 글
[SWEA 코딩] 장마 속의 막대 - PYTHON #12742 (0) | 2021.10.13 |
---|---|
[SWEA 코딩] 부서진 타일 - PYTHON #12052 (0) | 2021.09.08 |
[SWEA 코딩] 부분 수열의 합 - PYTHON #2817 (0) | 2021.07.14 |
[SWEA 코딩] 격자판의 숫자 이어 붙이기 - PYTHON #2819 (0) | 2021.07.13 |
[SWEA 코딩] 영준이의 카드 카운팅 - PYTHON #4047 (0) | 2021.06.30 |