SW Expert Academy
SW ํ๋ก๊ทธ๋๋ฐ ์ญ๋ ๊ฐํ์ ๋์์ด ๋๋ ๋ค์ํ ํ์ต ์ปจํ ์ธ ๋ฅผ ํ์ธํ์ธ์!
swexpertacademy.com
T=int(input())
for tc in range(1,T+1):
N,M=map(int,input().split())
arr=[list(map(int,input().split())) for _ in range(N)]
cost = [0]+[K*K+(K-1)*(K-1) for K in range(1,40)] #cost์ ๋น์ฉ์ ๋ฏธ๋ฆฌ ๊ตฌํ๊ธฐ! (์ด์์์ญ(K)๋ณ ์ด์ ๋น์ฉ)
def homesafer():
home =[] #์ง ์ขํ ๋ฃ์ด ์ค ๋ฆฌ์คํธ
ans = 0 # ๋ต ๋ฃ์ด์ค ๋ณ์
#์ง ์ขํ ๊ตฌํ๊ธฐ
for i in range(N):
for j in range(N):
if arr[i][j] == 1:
home.append((i,j))
for sy in range(N):
for sx in range(N):
box=[0]*40
for cy,cx in home: #ํ์ฌ ์ขํ(์ง)
distance=abs(sy-cy)+abs(sx-cx)+1 #์ง๊ณผ ์ด์๊ฑฐ๋ฆฌ ์ค์ฌ๊ณผ์ ๊ฑฐ๋ฆฌ(์์ ํฌํจํด์+1)
box[distance] +=1 #๊ฑฐ๋ฆฌ๋ณ๋ก ์ง ์๋ ์ ์ถ๊ฐ (๊ฑฐ๋ฆฌ๋ฅผ ์ ์ฅ)
for i in range(1,40):
box[i]+=box[i-1] #๋์ ํฉ์ผ๋ก ๊ตฌํด์ฃผ๊ธฐ
for j in range(1,40):
if cost[j] <=box[j]*M and ans <box[j]: #์ํดx[๋น์ฉ<=์์ต(์ง์*์ง๋ถ๋น์ฉ)],์์ต ์ต๋ ๊ฐฑ์
ans = box[j]
return ans #์ต๋ ์์ต ๊ฐฑ์ ํด ๋ฆฌํด
ret = homesafer()
print(f'#{tc} {ret}')
ํ์ด๋ฐฉ๋ฒ
์ฌ์ค ๋ฌธ์ ์์ฒด๊ฐ ์ฒ์์๋ ์ข ์ดํด๊ฐ ์๋์ด์ ํ๋ค์๋ค. ๊ทธ๋์ ์ค๊ณ๋ ์ ์์ธ์์ ธ์ ๊ฒฐ๊ตญ ๋ฌธํ ๊ฐ์๋ฅผ ํตํด ๊ฒจ์ฐ ์ดํดํ๊ณ ๋๋ฒ๊น ํ๋ค. ์ฝ๋์ ์ ๋ต์ ๋ค์๊ณผ ๊ฐ๋ค.
1. ์ด์์์ญ์ ๋น์ฉ์ ๋ฏธ๋ฆฌ ๊ตฌํด์ ๋ฆฌ์คํธ์ ๋ฃ์ด์ค๋ค.
2. ์ง์ ์ขํ๋ฅผ ๋ชจ๋ ์ฐพ์ ๋ฆฌ์คํธ์ ๋ฃ์ด์ค๋ค.
3. for๋ฌธ์ ํตํด ํ์ฌ ์ง ์ขํ์ ์๋น์ค์์ญ์์ค์ฌ(sy,sx)์ ๊ฑฐ๋ฆฌ๋ฅผ ์ ๋๊ฐ์ ํตํด ๊ฑฐ๋ฆฌ๋ฅผ ์ฐพ๋๋ค. (์ด๋ ์์ ์ ํฌํจํด์ผํ๋ฏ๋ก +1ํ ๊ฒ)
4. ์ค์ฌ๊ณผ์ ๊ฑฐ๋ฆฌ๋ฅผ ์ธ๋ฑ์ค๋ก ์ผ์ DAT๋ก box์ ํด๋น ์ธ๋ฑ์ค ๊ฐ +=1ํด ๊ฐฑ์ ํด ์ค๋ค.
5. ๋์ ํฉ์ ํตํด (์? K์ ์์ญ์ด ๋ง์ฝ 3์ด๋ผ๋ฉด K๊ฐ 2์ธ๊ฒ๋ ํฌํจํด์ผํ๋ฏ๋ก) box์ ๊ฐ์ ๊ฐฑ์ ํด ์ค๋ค.
6. ์ด์ ์ํด๋ฅผ ์๋ณด๊ธฐ ์ํ ์กฐ๊ฑด (๋น์ฉ <= ์์ต(์ง์ ์ * ์ง๋ถ ๋น์ฉ))๊ณผ ans์ ์์ต ์ต๋๋ฅผ ๊ฐฑ์ ํ์ฌ
7. ์ต์ข ์ ์ผ๋ก ์ต๋ ์์ต์ ๋ฆฌํดํ๊ฒ ํ๋ค.
'Problem Solving > SWEA' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
swea14190. ๋ฏผ์ฝ์จ์ ๊ฝ๋ฐญ(python) (0) | 2022.04.11 |
---|---|
swea4021.์๋ฆฌ์ฌ (0) | 2022.04.07 |
swea.14195 ๋ฏธ์๋ฌผ ๊ด์ฐฐ (0) | 2022.04.06 |
swea. ์ ๊ธฐ๋ฒ์ค (0) | 2022.03.06 |
swea. min max (0) | 2022.03.06 |
๋๊ธ