방금 라인 코딩테스트 때는 결국 못 풀고 뒤늦게 깨달은 풀이 아이디어 기록..
문제는 공개할 수 없지만 다음에 풀 때에는 대충 요런 식으로 풀자!
💡Tip : "거리"를 이용하자! (abs를 통한 |x 거리 차이| & |y 거리 차이| 계산)
# 네모 (정방형) 연산
for i in range(n):
for j in range(n):
if i in range(x-m, x+m+1) and j in range(y-m, y+m+1):
graph[i][j] += (m+1) - max(abs(x - i), abs(y - j))
# 다이아몬드 연산
for i in range(n):
for j in range(n):
if abs(x - i) + abs(y - j) <= m:
graph[i][j] -= (m+1) - (abs(x - i) + abs(y - j))
대충 요런 모양인데, 가운데((x, y))부터 바깥으로 갈 수록 값이 작아지는 형태로 채워나간다. (3->2->1)
기준은 중심 값(m+1 즉, 반지름) 기준으로 거리 구해서 값 산출!
코딩을 게을리 하지 말자.....
'[ 알고리즘 ] > Implementation' 카테고리의 다른 글
[프로그래머스] 교점에 별 만들기 (0) | 2022.10.07 |
---|---|
[프로그래머스] 스킬트리 (0) | 2022.10.07 |
[백준] 1283. 단축키 지정 (0) | 2022.08.04 |
[백준] 20436. ZOAC 3 (0) | 2022.08.02 |
[백준] 14467. 소가 길을 건너간 이유 (0) | 2022.08.02 |