๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
  • What would life be If we had no courage to attemp anything?
Problem Solving/SWEA

swea2117.ํ™ˆ ๋ฐฉ๋ฒ” ์„œ๋น„์Šค

by DevIseo 2022. 4. 7.
 

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

๋Œ“๊ธ€