[๋ฌธ์ ๋งํฌ] ๐
SW Expert Academy
SW ํ๋ก๊ทธ๋๋ฐ ์ญ๋ ๊ฐํ์ ๋์์ด ๋๋ ๋ค์ํ ํ์ต ์ปจํ ์ธ ๋ฅผ ํ์ธํ์ธ์!
swexpertacademy.com
์ค๋ช
N x N ํ๋ ฌ์ด ์ฃผ์ด์ง ๋,
์๊ณ ๋ฐฉํฅ์ผ๋ก 90๋, 180๋, 270๋ ํ์ ํ ๋ชจ์์ ์ถ๋ ฅํ๋ผ.
[์ ์ฝ ์ฌํญ]
N์ 3 ์ด์ 7 ์ดํ์ด๋ค.
ํ์ด
1. ์ด์ค ๋ฆฌ์คํธ๋ก ์ ๋ ฅ ๋ฐ๊ธฐ
num_list = []
for _ in range(n):
num_list.append(list(map(int, input().split())))
๋ฆฌ์คํธ ์ปดํ๋ฆฌํจ์ ์ ์ฌ์ฉํด์ ์ ๋ ฅ ๋ฐ๋ ๋ฐฉ๋ฒ
num_list = [list(map(int, input().split())) for _ in range(n)]
2. ํ ์คํธ ์ผ์ด์ค ๋ฒํธ ์ถ๋ ฅ
print("#%d" %tc)
3. 90๋, 180๋, 270๋๋ก ํ์ ํ ๊ฒฐ๊ณผ๋ฅผ ๋ด์ ๋ฆฌ์คํธ ์์ฑ
east = [[0 for _ in range(n)] for _ in range(n)]
north = [[0 for _ in range(n)] for _ in range(n)]
west = [[0 for _ in range(n)] for _ in range(n)]
- 90๋ = east, 180๋ = north, 270๋ = west๋ก ๊ตฌ๋ถํ๋ค.
- N x N ๋งํผ ์ด์ค ๋ฆฌ์คํธ๋ฅผ ์์ฑํ๋ค.
4. ๊ฐ์ ํ์ ์ํค๊ณ ์์ฑํ ๋ฆฌ์คํธ์ ๋ด๋๋ค.
for i in range(n):
for j in range(n):
east[i][j] = num_list[n-1-j][i] #90๋
north[i][j] = num_list[n-1-i][n-1-j] #180๋
west[i][j] = num_list[j][n-1-i] #270๋
ํ์ ํ ๊ฒฐ๊ณผ๋ฅผ ๋ด์ ๋ฆฌ์คํธ๋ค์ ์ถ๋ ฅํ๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
[[7, 4, 1], [8, 5, 2], [9, 6, 3]]
[[9, 8, 7], [6, 5, 4], [3, 2, 1]]
[[3, 6, 9], [2, 5, 8], [1, 4, 7]]
- ์ถ๋ ฅํ ์์์ ๋ง์ถฐ์ ์ถ๋ ฅํ๋ ค๋ฉด ๊ฐ ๋ฆฌ์คํธ์ ์ฒซ ๋ฒ์งธ ์ธ๋ฑ์ค๋ถํฐ ๋ง์ง๋ง ์ธ๋ฑ์ค๊น์ง ์ฐจ๋ก๋ก ์ถ๋ ฅ์์ผ์ผ ํ๋ค.
- ๊ทธ๋์ for๋ฌธ์ ํตํด ์ถ๋ ฅํ๋๋ฐ ๊ณต๋ฐฑ์ด ์์ด์ผ ํ๋ฉฐ 90๋ ๋ฐ๋ก, 180๋ ๋ฐ๋ก, 270๋ ๋ฐ๋ก ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถํด์ผ ํ๋ค.
5. ๊ฒฐ๊ณผ ์ถ๋ ฅ
for i in range(n):
print(*east[i], sep='', end=' ')
print(*north[i], sep='', end=' ')
print(*west[i], sep='')
- *๋ฆฌ์คํธ : ๋ฆฌ์คํธ์ ๊ฐ ์์๊ฐ ๊ฐ๋ณ์ ์ผ๋ก ์ถ๋ ฅ๋๋ค.
- * ์ฐ์ฐ์๋ ๋ฆฌ์คํธ์ ์์๋ฅผ **์ธํจํน(unpacking)**ํ์ฌ, ๋ฆฌ์คํธ ์์ฒด๊ฐ ์๋ ๋ฆฌ์คํธ์ ๊ฐ ์์๋ฅผ ์ ๋ฌํ๋ค.
- ์ด๋ฅผ ํตํด ๋ฆฌ์คํธ์ ์์๋ฅผ ๊ณต๋ฐฑ์ ๊ธฐ์ค์ผ๋ก ํ ์ค๋ก ์ถ๋ ฅํ ์ ์๋ค.
- sep=' ' : ๊ณต๋ฐฑ ์์ด ์ถ๋ ฅ
- end=' ' : ํ ์ค์ ์ด์ด์ ์ถ๋ ฅ
Solution
test_case = int(input())
for tc in range(1, test_case + 1):
n = int(input())
num_list = []
for _ in range(n):
num_list.append(list(map(int, input().split())))
print("#%d" %tc)
east = [[0 for _ in range(n)] for _ in range(n)]
north = [[0 for _ in range(n)] for _ in range(n)]
west = [[0 for _ in range(n)] for _ in range(n)]
for i in range(n):
for j in range(n):
east[i][j] = num_list[n-1-j][i] #90๋
north[i][j] = num_list[n-1-i][n-1-j] #180๋
west[i][j] = num_list[j][n-1-i] #270๋
for i in range(n):
print(*east[i], sep='', end=' ')
print(*north[i], sep='', end=' ')
print(*west[i], sep='')
๐ฉ๐ป ํ๊ณ
๋ฌธ์ ์ดํด์ ํ์ ์ํค๋๋ฐ๊น์ง๋ ๋ณ ๋ฌธ์ ์์๋๋ฐ.. ์ถ๋ ฅ์ํค๋๋ฐ ๊ฝค ์๊ฐ์ ์์๋ค. ํ ๊ทธ๋๋ ์ํธ์ ์ฑ๊ณตํด์ ๋คํ์ด๋ค.
'๐งฉ Algorithm > SWEA' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [SWEA] 1948. ๋ ์ง ๊ณ์ฐ๊ธฐ (Python/D2) (0) | 2024.10.18 |
|---|---|
| [SWEA] 1959. ๋ ๊ฐ์ ์ซ์์ด (Python/D2) (1) | 2024.10.18 |
| [SWEA] 1976. ์๊ฐ ๋ง์ (Python/D2) (0) | 2024.10.16 |
| [SWEA] 1284. ์๋ ์๊ธ ๊ฒฝ์ (Python/D2) (4) | 2024.10.16 |
| [SWEA] 1945. ์์ธ์๋ถํด (Python/D2) (0) | 2024.10.16 |