λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°

λΆ„λ₯˜ 전체보기

(230)
[μ•Œκ³ λ¦¬μ¦˜ || ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] νŠΉλ³„ν•œ 이차원 λ°°μ—΄ 1 function solution(n) { const arr = new Array(n).fill(new Array(n).fill(0)); for (let i = 0; i < n; i++) { arr[i][i] = 1; } console.log(arr) } μ²˜μŒμ— fill 을 톡해 2차원 배열을 λ§Œλ“  ν›„, [i][i] 차원 μˆ˜κ°€ 같은 κ²ƒλ“€λ§Œ 1을 λ„£μ–΄μ£Όλ©΄ λ˜κ² λ‹€ 생각을 ν–ˆλŠ”λ° μ™ κ±Έ [ [ 1, 0, 0 ], [ 0, 1, 0 ], [ 0, 0, 1 ] ] 이 μ•„λ‹ˆλΌ [ [ 1, 1, 1 ], [ 1, 1, 1 ], [ 1, 1, 1 ] ] κ°€ λ‚˜μ˜΄ μ•— κ·Έλ ‡λ‹€,, 배열이 λœ»λŒ€λ‘œ μ•ˆλ˜λ©΄ 얕은 배열일 μˆ˜λ„ μžˆλ‹€λŠ” 생각을 λͺ»ν–ˆλ‹€. 즉, 2차원 배열이 각 μš”μ†Œλ‘œ 가지고 있던 [0,0,0] 이 λͺ¨λ‘ 같은 μ£Όμ†Œλ₯Ό μ°Έμ‘°ν•˜..
[λͺ¨λ”₯λ‹€] 31μž₯ RegExp πŸ„ 31.1 μ •κ·œμ‹ ν‘œν˜„μ‹μ΄λž€? μ •κ·œμ‹ ν‘œν˜„μ‹ regular expression : μΌμ •ν•œ νŒ¨ν„΄μ„ 가진 λ¬Έμžμ—΄μ˜ 집합을 ν‘œν˜„ν•˜κΈ° μœ„ν•΄ μ‚¬μš©ν•˜λŠ” ν˜•μ‹ μ–Έμ–΄ - JS 의 고유 문법이 μ•„λ‹ˆλ©°, λŒ€λΆ€λΆ„μ˜ ν”„λ‘œκ·Έλž˜λ° 언어에 λ‚΄μž₯돼있음. - λ¬Έμžμ—΄μ„ λŒ€μƒμœΌλ‘œ νŒ¨ν„΄ 맀칭 κΈ°λŠ₯을 제곡. ( = νŠΉμ • νŒ¨ν„΄κ³Ό μΌμΉ˜ν•˜λŠ” λ¬Έμžμ—΄μ„ 검색, μΆ”μΆœ, μΉ˜ν™˜ν•  수 μžˆλ‹€.) - μ •κ·œμ‹μ„ μ‚¬μš©ν•˜μ§€ μ•ŠμœΌλ©΄ 반볡문과 쑰건문을 톡해 νž˜λ“€κ²Œ 체크해야함. πŸ„ 31.2 μ •κ·œμ‹ ν‘œν˜„μ‹μ˜ 생성 μ •κ·œ ν‘œν˜„μ‹ 객체λ₯Ό μƒμ„±ν•˜λŠ” 방법 1. μ •κ·œμ‹ λ¦¬ν„°λŸ΄ - νŒ¨ν„΄κ³Ό ν”Œλž˜κ·Έλ‘œ ꡬ성됨. const reg = /is/i; 2. RegExp μƒμ„±μž ν•¨μˆ˜ const reg = new RegExp(/is/i); πŸ„ 31.3 RegExp λ©”μ„œλ“œ 31.3.1 RegExp.p..
[ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ level.0] νŠΉλ³„ν•œ 이차원 λ°°μ—΄ 2 γ…‹γ…‹γ…‹γ…‹γ…‹γ…‹γ…‹γ…‹γ…‹γ…‹γ…‹γ…‹γ…‹γ…‹γ…‹γ…‹γ…‹γ…‹γ…‹γ…‹γ…‹γ…‹γ…‹γ…‹γ…‹γ…‹γ…‹γ…‹γ…‹γ…‹γ…‹ 지 λ„ˆλ¬΄ 웃겨 function solution(arr) { for (let i = 0; i row.every((_, j) => arr[i][j] === arr[j][i])) ? 1 : 0; } μŠ€ν„°λ””μ—μ„œ λΉ…o 도 같이 μ“°λ©΄ 쒋을거 κ°™λ‹€ ν•˜μ…”μ„œ 같이 써보자! 근데 λΉ…O λŠ” μ–΄λ–»κ²Œ μ•Œ 수 μžˆλŠ”κ°€? https://holika...
[ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ level.0] 9둜 λ‚˜λˆˆ λ‚˜λ¨Έμ§€ function solution(number) { return number.split("").reduce((a, b) => Number(a) + Number(b))%9; } function solution(number) { const nums = number.split(""); let sum = 0; for (let i = 0; i < nums.length; i++) { sum += Number(nums[i]) } return sum % 9 } κΆκΈˆν•΄μ„œ 속도 λΉ„κ΅ν•΄λ΄€λŠ”λ° for λ¬Έ μ΄μš©ν•œκ²Œ 더 적게 κ±Έλ¦°λ‹€. 그리고 λ‹¨μˆœν•˜κ²Œ 2둜 λ‚˜λˆˆ λ‚˜λ¨Έμ§€ 좜λ ₯ν•˜λ €κ³  ν•˜λ‹ˆκΉŒ μ•ˆλΌμ„œ μƒκ°ν•΄λ³΄λ‹ˆ, 숫자둜 λ‚˜νƒ€λ‚Ό 수 μžˆλŠ” λ²”μœ„κ°€ μžˆμ—ˆλ‹€. κ·Έλž˜μ„œ BigInt λ₯Ό μ΄μš©ν•΄μ„œ 좜λ ₯ν•΄λ³΄λ‹ˆ, n 을 뢙이고 좜λ ₯됐닀. Number 의 λ©”..
[ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ level.0] 두 수의 μ—°μ‚°κ°’ λΉ„κ΅ν•˜κΈ° μ—°μ‚° ⊕λŠ” 두 μ •μˆ˜μ— λŒ€ν•œ μ—°μ‚°μœΌλ‘œ 두 μ •μˆ˜λ₯Ό λΆ™μ—¬μ„œ μ“΄ 값을 λ°˜ν™˜ν•©λ‹ˆλ‹€. 예λ₯Ό λ“€λ©΄ λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€. 12 ⊕ 3 = 123 3 ⊕ 12 = 312 μ–‘μ˜ μ •μˆ˜ a와 bκ°€ μ£Όμ–΄μ‘Œμ„ λ•Œ, a ⊕ b와 2 * a * b 쀑 더 큰 값을 returnν•˜λŠ” solution ν•¨μˆ˜λ₯Ό μ™„μ„±ν•΄ μ£Όμ„Έμš”. 단, a ⊕ b와 2 * a * bκ°€ κ°™μœΌλ©΄ a ⊕ bλ₯Ό return ν•©λ‹ˆλ‹€. 풀이 1 function solution(a, b) { return Number('' + a + b) > 2 * a * b ? Number('' + a + b) : 2 * a * b ; } 풀이 2 function solution(a, b) { return Math.max(Number('' + a + b), 2 * a * b ) } 두가지 방법..
[ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ level.1] μžμ—°μˆ˜ 뒀집어 λ°°μ—΄λ‘œ λ§Œλ“€κΈ° function solution(n) { return String(n).split("").reverse().map(v=> Number(v)); } κ°€μž₯ λ‹¨μˆœν•˜κ²Œ μƒκ°λ‚˜μ„œ μ΄λ ‡κ²Œ ν’€μ—ˆλŠ”λ°, μ†λ„λ©΄μ—μ„œ 쒋은 μ½”λ“œλŠ” μ•„λ‹Œ 것 κ°™λ‹€. μžμ—°μˆ˜ n을 뒀집어 각 자리 숫자λ₯Ό μ›μ†Œλ‘œ κ°€μ§€λŠ” λ°°μ—΄ ν˜•νƒœλ‘œ λ¦¬ν„΄ν•΄μ£Όμ„Έμš”. 예λ₯Όλ“€μ–΄ n이 12345이면 [5,4,3,2,1]을 λ¦¬ν„΄ν•©λ‹ˆλ‹€. n은 10,000,000,000μ΄ν•˜μΈ μžμ—°μˆ˜μž…λ‹ˆλ‹€. λ‚˜λŠ” λ‹Ήμ—°νžˆ 0이 μžμ—°μˆ˜κ°€ μ•„λ‹ˆλ‹ˆκΉŒ κ³ λ € μ•ˆν–ˆλŠ”λ°, μ΄μ‚°μˆ˜ν•™(?) μ—μ„œλŠ” 0이 ν¬ν•¨λ˜λŠ” κ²½μš°λ„ μžˆλ‹€κ³  ν•œλ‹€. 그치만 μ΄μ‚°μˆ˜ν•™μ΄ 더 μ˜ˆμ™Έμ μΈ κ²½μš°λ‹ˆκΉŒ 0이 ν¬ν•¨λ˜λŠ” λ²”μœ„λΌλŠ” 말이 μ—†λ‹€λ©΄ 일반 μˆ˜ν•™μœΌλ‘œ 생각해야겠닀! + 팁 ν™”μ‚΄ν‘œ ν•¨μˆ˜μ—μ„œ μΈμžλž‘ λ©”μ„œλ“œκ°€ λ°›λŠ” μΈμžλž‘ 같을 λ•Œ μƒλž΅μ΄ κ°€λŠ₯ν•œκ±°λž‘ ..
[μ•Œκ³ λ¦¬μ¦˜ || ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] x만큼 간격이 μžˆλŠ” n개의 숫자 처리 속도에 λŒ€ν•΄ 인지λ₯Ό ν•˜κ²Œ λ˜μ–΄ μ˜€λŠ˜μ€ 속도도 비ꡐ해 λ΄€λ‹€. function solution(x, n) { return new Array(n).fill(x).map((v, i) => v += x * i) } μ²˜μŒμ—” μ΄λ ‡κ²Œ ν’€μ—ˆλŠ”λ°, κ°€μž₯ λΉ λ₯Έ μ†λ„λŠ” 0.04ms κ°€ λ‚˜μ™”λ‹€. κ·Έ λ‹€μŒμ— ν•œ 방법은 function solution(x, n) { let result = []; for (let i = 0; i < n; i++) { result.push(x + x * i) } return result; } μ΄λ ‡κ²Œ for 문을 돌린 방법인데, κ°€μž₯ 속도가 0.03ms 이 λ‚˜μ™”λ‹€. 큰 μ°¨μ΄λŠ” μ—†μ§€λ§Œ, λŒ€μ²΄λ‘œ for 문이 더 λΉ λ₯΄κ²Œ λ‚˜μ™”λ‹€.
[μ•Œκ³ λ¦¬μ¦˜ || ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] λ‚˜λ¨Έμ§€κ°€ 1이 λ˜λŠ” 수 μ°ΎκΈ° + πŸ† 고수의 풀이법 https://school.programmers.co.kr/learn/courses/30/lessons/87389 ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ μ½”λ“œ μ€‘μ‹¬μ˜ 개발자 μ±„μš©. μŠ€νƒ 기반의 ν¬μ§€μ…˜ 맀칭. ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€μ˜ 개발자 λ§žμΆ€ν˜• ν”„λ‘œν•„μ„ λ“±λ‘ν•˜κ³ , λ‚˜μ™€ 기술 ꢁ합이 잘 λ§žλŠ” 기업듀을 맀칭 λ°›μœΌμ„Έμš”. programmers.co.kr function solution(n) { for (let i = 0; i < n; i++) { if (n % i === 1) { return i; } } } λ‹¨μˆœν•œ λ‚˜μ˜ 풀이. μ•„λ§ˆ μ•Œκ³ λ¦¬μ¦˜ μŠ€ν„°λ””λ₯Ό μ•ˆν–ˆλ”λΌλ©΄ 잘 ν•œ 쀄 μ•Œκ³  κ·Έλƒ₯ λ„˜μ–΄κ°”κ² μ§€..! 1. μ–΄λ–»κ²Œλ“  ν’€μ–΄λ³Έλ‹€. 2. λ§žμΆ˜λ‹€. 3. λ‹€λ₯Έ μ‚¬λžŒμ˜ 풀이λ₯Ό μ°Έκ³ ν•΄ λͺ¨λ₯΄λŠ” 방식, μ°Έκ³  ν• λ§Œν•œ 방식, λ©”μ„œλ“œ 등을 κ³΅λΆ€ν•œλ‹€. 4. λ‹€λ₯Έ 문제λ₯Ό ν‘Όλ‹€..

728x90
λ°˜μ‘ν˜•