Skip to content

Commit 8112a9c

Browse files
committed
add solution: rotate image
1 parent 575b17e commit 8112a9c

File tree

1 file changed

+39
-0
lines changed

1 file changed

+39
-0
lines changed

β€Žrotate-image/flynn.go

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
/*
2+
풀이
3+
- matrixλ₯Ό 4μ‚¬λΆ„λ©΄μœΌλ‘œ λ‚˜λˆ•λ‹ˆλ‹€
4+
1μ‚¬λΆ„λ©΄μ˜ λͺ¨λ“  μ’Œν‘œμ— λŒ€ν•΄ μ•„λž˜μ™€ 같은 연산을 μˆ˜ν–‰ν•©λ‹ˆλ‹€
5+
- 1μ‚¬λΆ„λ©΄μ˜ μ’Œν‘œ a1에 λŒ€ν•΄ a2, a3, a4λ₯Ό μ•„λž˜μ²˜λŸΌ μ •μ˜ν•©λ‹ˆλ‹€
6+
a2: a1을 90도 νšŒμ „μ‹œμΌ°μ„ λ•Œμ˜ μ’Œν‘œ (2사뢄면에 μœ„μΉ˜ν•¨)
7+
a3: a2λ₯Ό 90도 νšŒμ „μ‹œμΌ°μ„ λ•Œμ˜ μ’Œν‘œ (3사뢄면에 μœ„μΉ˜ν•¨)
8+
a4: a3을 90도 νšŒμ „μ‹œμΌ°μ„ λ•Œμ˜ μ’Œν‘œ (4사뢄면에 μœ„μΉ˜ν•¨)
9+
a1 -> a2, a2 -> a3, a3 -> a4, a4 -> a1으둜 값을 λ³€κ²½μ‹œν‚΅λ‹ˆλ‹€
10+
Big O
11+
- N: 맀트릭슀의 크기
12+
- Time complexity: O(N^2)
13+
- Space complexity: O(1)
14+
*/
15+
16+
func rotate(matrix [][]int) {
17+
n := len(matrix)
18+
// μ‚¬λΆ„λ©΄μ˜ 크기, qr, qc: μ‚¬λΆ„λ©΄μ˜ ν–‰, μ—΄ 크기
19+
qr := n / 2
20+
qc := (n + 1) / 2
21+
22+
for r := 0; r < qr; r++ {
23+
for c := 0; c < qc; c++ {
24+
r1 := r
25+
c1 := c
26+
27+
r2 := c
28+
c2 := n - 1 - r
29+
30+
r3 := n - 1 - r
31+
c3 := n - 1 - c
32+
33+
r4 := n - 1 - c
34+
c4 := r
35+
36+
matrix[r1][c1], matrix[r2][c2], matrix[r3][c3], matrix[r4][c4] = matrix[r4][c4], matrix[r1][c1], matrix[r2][c2], matrix[r3][c3]
37+
}
38+
}
39+
}

0 commit comments

Comments
Β (0)