~๋ชฉ์ฐจ~
๋ฌธ์
๋ฌธ์ ํด๊ฒฐ ํฌ์ธํธ
Q. ๋ง๋ฆ๋ชจ๋ฅผ ์ด๋ป๊ฒ ๊ตฌ๋ถํ์ฌ ์ฐพ์๋ผ ๊ฒ์ธ๊ฐ
- ๋์ฅ์ ํญ์ ํ์๋ก (1, 3, 5, 7, 9, ... ) NxN ํํ๋ฅผ ๋ํ๋ธ๋ค.
- ๊ทธ๋ฌ๋ฏ๋ก ์ ์ฒด ๊ธธ์ด์ ์ค๊ฐ ์์น๊ฐ ํญ์ ์กด์ฌํ๊ณ ํด๋น ์์น(n//2)๋ถํฐ ๋ง๋ฆ๋ชจ๋ ์์๋๋ค.
- ๋ง๋ฆ๋ชจ์ ์ผ์ชฝ ๋ฉด์ ์์์์น(a)๋ก ์ง์ ํ๊ณ ํด๋น ์์น๋ก ๋ถํฐ ์ผ๋งํผ์ ๊ธธ์ด(b)๋งํผ ์ํํ ๊ฒ์ธ์ง ํ๋ณ๋ก ์๊ฐํด๋ณด์
- ๋ง๋ฆ๋ชจ ๋ชจ์์ด ์๋ ์ผ๊ฐํ ๋๊ฐ์ ํฉ์ผ๋ก ์๊ฐํด๋ณด๋ฉด n//2์์น๋ฅผ ๊ธฐ์ค์ผ๋ก ์์ ํ ๋์ผํ ํํ๋ฅผ ๋๋ค.
ํด๋น ์์น๊ฐ a์ b์ ๊ฐ์ด ๋ฌ๋ผ์ง๋ ํฌ์ธํธ์ด๋ค.
- a๋ ๋ค์ ํ์์ ํ ์นธ ๋ค๋ก ๊ฐ๋ ๊ฒ์ด ํ์นธ ์์ผ๋ก ๊ฐ๊ฒ ๋๊ณ , b๋ 2์นธ์ฉ ๋ํ๊ฐ๋ ๊ฒ์ 2์นธ์ฉ ์ขํ๊ฐ๋ ๊ฒ์ด๋ค.
์์ฑ ์ฝ๋
for test in range(1, int(input())+1):
n = int(input()) # nxn ๋์ฅ
board = [] # ๋์ฅ
result = 0 # ์ํ๋ฌผ
for i in range(n):
board.append(list(int(i) for i in input())) # ๋ฌธ์์ด ์
๋ ฅ๊ฐ์ int์์์ ํ ์ค์ฉ ๋ฆฌ์คํธ
a, b = n//2, 1 # ๊ฐ ํ์ ์ด๋ ์์น(a)์์ ์ผ๋งํผ(b)
for i in range(n): # ํ
result += sum(board[i][a:a+b])
if i < n//2: # n์ ์ ๋ฐ ์์น ๊น์ง๋ ์์ชฝ ๋ฐฉํฅ ์ผ๊ฐํ
a -= 1
b += 2
else: # ์ ๋ฐ ์ดํ๋ถํฐ๋ ์๋์ชฝ ๋ฐฉํฅ ์ผ๊ฐํ
a += 1
b -= 2
print("#{} {}".format(test, result))
'๐๋ฌธ์ ํ์ด > ๐งฉSWExpertAcademy' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[SWEA] ํ์ด์ฌ 2817. ๋ถ๋ถ ์์ด์ ํฉ | BFS (0) | 2023.04.24 |
---|---|
[SWEA] ํ์ด์ฌ 2806. N-Queen | ๋ฐฑํธ๋ํน(Backtracking) (0) | 2023.04.21 |
[SWEA] ํ์ด์ฌ 5215. ํ๋ฒ๊ฑฐ ๋ค์ด์ดํธ | DFS (2) | 2023.04.20 |
[SWEA] ํ์ด์ฌ 1209. Sum (0) | 2023.04.20 |
[SWEA] 1928. Base64 Decoder | ์์คํค ์ฝ๋ | ๋นํธ ์ฐ์ฐ (0) | 2023.04.03 |