๐กsolutions )
๐ฌ ๋จ์ํ ๊ตฌํํ๋ ์๋ฎฌ๋ ์ด์ ๋ฌธ์
๐ฌ ํ ๋๋ฆฌ ์์ญ์ ์ซ์๋ค์ ํ์ ์ํค๊ธฐ ์ํด for๋ฌธ์์ ์ธ๋ฑ์ค ๋ฒ์๋ฅผ ์ ๊ตฌ๋ถํ๋ ๊ฒ์ด ์ค์ํจ
๐ฌ Python์์ ๋ ๋ณ์๋ฅผ ํ๋ฒ์ swap์ด ๊ฐ๋ฅํ๋ค -> e.g) a,b = b,a๋ก a์ b๊ฐ ๊ตํ ๊ฐ๋ฅ
๐จ๐ปcode )
def solution(rows, columns, queries):
arr = [[0]*columns for _ in range(rows)]
cnt = 1
result = []
for i in range(rows):
for j in range(columns):
arr[i][j] = cnt
cnt += 1
for r1, c1, r2, c2 in queries:
min_v = 10001
before = arr[r1][c1-1]
# ์
for i in range(c1-1, c2):
min_v = min(arr[r1-1][i], min_v)
before, arr[r1-1][i] = arr[r1-1][i], before
# ์ค๋ฅธ์ชฝ
for i in range(r1, r2):
min_v = min(arr[i][c2-1], min_v)
before, arr[i][c2-1] = arr[i][c2-1], before
# ์๋
for i in range(c2-2, c1-2, -1):
min_v = min(arr[r2-1][i], min_v)
before, arr[r2-1][i] = arr[r2-1][i], before
# ์ผ์ชฝ
for i in range(r2-2, r1-1, -1):
min_v = min(arr[i][c1-1], min_v)
before, arr[i][c1-1] = arr[i][c1-1], before
result.append(min_v)
return result
๐description )
- ํ๋ ฌ ํ ๋๋ฆฌ ํ์ ํ๊ธฐ
๋ฌธ์ ์ค๋ช
rows x columns ํฌ๊ธฐ์ธ ํ๋ ฌ์ด ์์ต๋๋ค. ํ๋ ฌ์๋ 1๋ถํฐ rows x columns๊น์ง์ ์ซ์๊ฐ ํ ์ค์ฉ ์์๋๋ก ์ ํ์์ต๋๋ค. ์ด ํ๋ ฌ์์ ์ง์ฌ๊ฐํ ๋ชจ์์ ๋ฒ์๋ฅผ ์ฌ๋ฌ ๋ฒ ์ ํํด, ํ ๋๋ฆฌ ๋ถ๋ถ์ ์๋ ์ซ์๋ค์ ์๊ณ๋ฐฉํฅ์ผ๋ก ํ์ ์ํค๋ ค ํฉ๋๋ค. ๊ฐ ํ์ ์ (x1, y1, x2, y2)์ธ ์ ์ 4๊ฐ๋ก ํํํ๋ฉฐ, ๊ทธ ์๋ฏธ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- x1 ํ y1 ์ด๋ถํฐ x2 ํ y2 ์ด๊น์ง์ ์์ญ์ ํด๋นํ๋ ์ง์ฌ๊ฐํ์์ ํ ๋๋ฆฌ์ ์๋ ์ซ์๋ค์ ํ ์นธ์ฉ ์๊ณ๋ฐฉํฅ์ผ๋ก ํ์ ํฉ๋๋ค.
๋ค์์ 6 x 6 ํฌ๊ธฐ ํ๋ ฌ์ ์์์ ๋๋ค.
์ด ํ๋ ฌ์ (2, 2, 5, 4) ํ์ ์ ์ ์ฉํ๋ฉด, ์๋ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด 2ํ 2์ด๋ถํฐ 5ํ 4์ด๊น์ง ์์ญ์ ํ ๋๋ฆฌ๊ฐ ์๊ณ๋ฐฉํฅ์ผ๋ก ํ์ ํฉ๋๋ค. ์ด๋, ์ค์์ 15์ 21์ด ์๋ ์์ญ์ ํ์ ํ์ง ์๋ ๊ฒ์ ์ฃผ์ํ์ธ์.
ํ๋ ฌ์ ์ธ๋ก ๊ธธ์ด(ํ ๊ฐ์) rows, ๊ฐ๋ก ๊ธธ์ด(์ด ๊ฐ์) columns, ๊ทธ๋ฆฌ๊ณ ํ์ ๋ค์ ๋ชฉ๋ก queries๊ฐ ์ฃผ์ด์ง ๋, ๊ฐ ํ์ ๋ค์ ๋ฐฐ์ด์ ์ ์ฉํ ๋ค, ๊ทธ ํ์ ์ ์ํด ์์น๊ฐ ๋ฐ๋ ์ซ์๋ค ์ค ๊ฐ์ฅ ์์ ์ซ์๋ค์ ์์๋๋ก ๋ฐฐ์ด์ ๋ด์ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
์ ์ถ๋ ฅ ์์
rowscolumnsqueriesresult
6 | 6 | [[2,2,5,4],[3,3,6,6],[5,1,6,3]] | [8, 10, 25] |
3 | 3 | [[1,1,2,2],[1,2,2,3],[2,1,3,2],[2,2,3,3]] | [1, 1, 5, 3] |
100 | 97 | [[1,1,100,97]] | [1] |