File tree Expand file tree Collapse file tree
product-of-array-except-self Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ /**
2+ * @param {number } n
3+ * @return {number }
4+ *
5+ * ํ์ด
6+ * 1. dp๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ ๊ณ๋จ๊น์ง ์ฌ๋ผ๊ฐ ์ ์๋ ๋ฐฉ๋ฒ์ ์๋ฅผ ๊ณ์ฐํ๋ค.
7+ * 2. dp[i]๋ i๋ฒ์งธ ๊ณ๋จ๊น์ง ์ฌ๋ผ๊ฐ ์ ์๋ ๋ฐฉ๋ฒ์ ์๋ฅผ ๋ํ๋ธ๋ค.
8+ * 3. dp[i] = dp[i - 1] + dp[i - 2] : ๋ง์ง๋ง์ ํ ๋ฒ์ 1๊ณ๋จ์ ์ฌ๋ผ์จ ๊ฒฝ์ฐ์ 2๊ณ๋จ์ ์ฌ๋ผ์จ ๊ฒฝ์ฐ๋ฅผ ํฉ์น๋ค.
9+ * ์๊ฐ ๋ณต์ก๋ - O(n) : ๋ฐฐ์ด์ ํ ๋ฒ ์ํ
10+ * ๊ณต๊ฐ ๋ณต์ก๋ - O(n) : dp ๋ฐฐ์ด ์์ฑ
11+ */
12+ var climbStairs = function ( n ) {
13+ let dp = [ ] ;
14+ dp [ 0 ] = 0 ;
15+ dp [ 1 ] = 1 ;
16+ dp [ 2 ] = 2 ;
17+
18+ for ( let i = 3 ; i <= n ; i ++ ) {
19+ dp [ i ] = dp [ i - 1 ] + dp [ i - 2 ] ;
20+ }
21+
22+ return dp [ n ] ;
23+ } ;
Original file line number Diff line number Diff line change 1+ /**
2+ * ํ์ด
3+ * 1. prefix๋ ํ์ฌ ์ธ๋ฑ์ค๊น์ง์ ๊ณฑ์ ์ ์ฅํ๊ณ , suffix๋ ํ์ฌ ์ธ๋ฑ์ค ์ดํ์ ๊ณฑ์ ์ ์ฅํ๋ค.
4+ * 2. ์ฒซ ๋ฒ์งธ ๋ฐ๋ณต๋ฌธ์์ prefix๋ฅผ ๊ณ์ฐํ๊ณ , ๋ ๋ฒ์งธ ๋ฐ๋ณต๋ฌธ์์ suffix๋ฅผ ๊ณ์ฐํ์ฌ answer ๋ฐฐ์ด์ ๊ณฑํ๋ค.
5+ * ์๊ฐ ๋ณต์ก๋ - O(n) : ๋ฐฐ์ด์ ๋ ๋ฒ ์ํ
6+ * ๊ณต๊ฐ ๋ณต์ก๋ - O(1) : answer ๋ฐฐ์ด
7+ *
8+ * @param {number[] } nums
9+ * @return {number[] }
10+ */
11+ var productExceptSelf = function ( nums ) {
12+ let prefix = 1 ;
13+ let suffix = 1 ;
14+ const n = nums . length ;
15+ let answer = new Array ( n ) . fill ( 1 ) ;
16+
17+ // ์๋ฐฉํฅ
18+ for ( let i = 0 ; i < n ; i ++ ) {
19+ answer [ i ] = prefix ;
20+ prefix *= nums [ i ] ;
21+ }
22+
23+ // ์ญ๋ฐฉํฅ
24+ for ( let i = n - 1 ; i >= 0 ; i -- ) {
25+ answer [ i ] *= suffix ;
26+ suffix *= nums [ i ] ;
27+ }
28+ return answer ;
29+ } ;
Original file line number Diff line number Diff line change 1+ /**
2+ * ํ์ด
3+ * 1. ๋ ๋ฌธ์์ด์ ๊ธธ์ด๊ฐ ๋ค๋ฅด๋ฉด false๋ฅผ ๋ฐํํ๋ค.
4+ * 2. ์ฒซ ๋ฒ์งธ ๋ฌธ์์ด์ ์ํํ๋ฉฐ ๊ฐ ๋ฌธ์์ ๋ฑ์ฅ ํ์๋ฅผ count ๊ฐ์ฒด์ ์ ์ฅํ๋ค.
5+ * 3. ๋ ๋ฒ์งธ ๋ฌธ์์ด์ ์ํํ๋ฉฐ count ๊ฐ์ฒด์์ ํด๋น ๋ฌธ์์ ๋ฑ์ฅ ํ์๋ฅผ ๊ฐ์์ํจ๋ค.
6+ * 4. ๋ง์ฝ count ๊ฐ์ฒด์ ํด๋น ๋ฌธ์๊ฐ ์๊ฑฐ๋ ๋ฑ์ฅ ํ์๊ฐ 0์ด๋ฉด false๋ฅผ ๋ฐํํ๋ค.
7+ * 5. ๋ชจ๋ ๋ฌธ์๋ฅผ ์ํํ ํ์๋ false๋ฅผ ๋ฐํํ์ง ์์๋ค๋ฉด true๋ฅผ ๋ฐํํ๋ค.
8+ * ์๊ฐ ๋ณต์ก๋ - O(n) : ๋ ๋ฌธ์์ด์ ํ ๋ฒ์ฉ ์ํ
9+ * ๊ณต๊ฐ ๋ณต์ก๋ - O(1) : count ๊ฐ์ฒด๋ ์ต๋ 26๊ฐ์ ์ํ๋ฒณ๋ง ์ ์ฅ
10+ */
11+ var isAnagram = function ( s , t ) {
12+ let count = { } ;
13+ if ( s . length !== t . length ) {
14+ return false ;
15+ }
16+ for ( const i of s ) {
17+ count [ i ] = count [ i ] ? count [ i ] + 1 : 1 ;
18+ }
19+ for ( const i of t ) {
20+ if ( ! count [ i ] ) return false ;
21+ count [ i ] -- ;
22+ }
23+ return true ;
24+ } ;
You canโt perform that action at this time.
0 commit comments