File tree Expand file tree Collapse file tree 2 files changed +69
-5
lines changed
validate-binary-search-tree Expand file tree Collapse file tree 2 files changed +69
-5
lines changed Original file line number Diff line number Diff line change 1+ /**
2+ Do not return anything, modify matrix in-place instead.
3+ */
4+ /**
5+ * 90๋ ํ์ ์ํค๊ธฐ
6+ * ์๊ณ ๋ฆฌ์ฆ ๋ณต์ก๋
7+ * - ์๊ฐ ๋ณต์ก๋: O(n2)
8+ * - ๊ณต๊ฐ ๋ณต์ก๋: O(1)
9+ * @param matrix
10+ */
11+ function rotate ( matrix : number [ ] [ ] ) : void {
12+ let n = matrix . length ;
13+
14+ // 0,0 -> 2,0
15+ // 1,0 -> 2,1
16+ // 2,0 -> 2,2
17+
18+ // 0,1 -> 1,0
19+ // 1,1 -> 1,1
20+ // 2,1 -> 1,2
21+
22+ // 0,2 -> 0,0
23+ // 1,2 -> 0,1
24+ // 2,2 -> 0,2
25+
26+ // 1 2 3
27+ // 4 5 6
28+ // 7 8 9
29+
30+ // 1 4 7
31+ // 2 5 8
32+ // 3 6 9
33+
34+ // 7 4 1
35+ // 8 5 2
36+ // 9 6 3
37+
38+ // 1. ํ๊ณผ ์ด์ ๋ฐ๊ฟ(ํ๊ณผ ์ด์ ์ ์น)
39+ for ( let i = 0 ; i < n ; i ++ ) {
40+ for ( let j = i ; j < n ; j ++ ) {
41+ // ๋๊ฐ์ ์ ๊ธฐ์ค์ผ๋ก ๋์นญ
42+ if ( i !== j ) {
43+ const temp = matrix [ i ] [ j ] ;
44+ matrix [ i ] [ j ] = matrix [ j ] [ i ] ;
45+ matrix [ j ] [ i ] = temp ;
46+ }
47+ }
48+ }
49+
50+ // 2. ๊ฐ ํ์ ์ข์ฐ๋ก ๋ค์ง๊ธฐ(= 90๋ ํ์ )
51+ for ( let i = 0 ; i < n ; i ++ ) {
52+ for ( let j = 0 ; j < Math . floor ( n / 2 ) ; j ++ ) {
53+ const temp = matrix [ i ] [ j ] ;
54+ matrix [ i ] [ j ] = matrix [ i ] [ n - 1 - j ] ;
55+ matrix [ i ] [ n - 1 - j ] = temp ;
56+ }
57+ }
58+ }
Original file line number Diff line number Diff line change 1111 * }
1212 * }
1313 */
14-
14+ /**
15+ * ์ด์งํธ๋ฆฌ ์ ํจ์ฑ ๊ฒ์ฌํ๊ธฐ
16+ * ์๊ณ ๋ฆฌ์ฆ ๋ณต์ก๋
17+ * - ์๊ฐ ๋ณต์ก๋: O(n) - n: ๋
ธ๋์ ์ด ๊ฐ์
18+ * - ๊ณต๊ณค ๋ณต์ก๋: O(h) - h: ํธ๋ฆฌ์ ๋์ด
19+ * @param root
20+ */
1521function isValidBST ( root : TreeNode | null ) : boolean {
1622 if ( ! root ) return true ;
17-
23+
1824 function isValid ( node : TreeNode | null , min : number , max : number ) : boolean {
1925 if ( ! node ) return true ;
2026 if ( node . val <= min || node . val >= max ) return false ;
21-
22- return isValid ( node . left , min , node . val ) &&
27+
28+ return isValid ( node . left , min , node . val ) &&
2329 isValid ( node . right , node . val , max )
2430 }
2531
2632 // ์ด๊ธฐ ํธ์ถ (๋ฃจํธ ๋
ธ๋์ ๋ฒ์๋ ๋ฌดํ๋)
2733 return isValid ( root , - Infinity , Infinity )
28- }
34+ }
You canโt perform that action at this time.
0 commit comments