๋ชฉ๋ก์ ์ฒด ๊ธ (433)
whatisthis?
javascript ๋ฌธ์ ์ค๋ช ๋ ์๋ฅผ ์ ๋ ฅ๋ฐ์ ๋ ์์ ์ต๋๊ณต์ฝ์์ ์ต์๊ณต๋ฐฐ์๋ฅผ ๋ฐํํ๋ ํจ์, solution์ ์์ฑํด ๋ณด์ธ์. ๋ฐฐ์ด์ ๋งจ ์์ ์ต๋๊ณต์ฝ์, ๊ทธ๋ค์ ์ต์๊ณต๋ฐฐ์๋ฅผ ๋ฃ์ด ๋ฐํํ๋ฉด ๋ฉ๋๋ค. ์๋ฅผ ๋ค์ด ๋ ์ 3, 12์ ์ต๋๊ณต์ฝ์๋ 3, ์ต์๊ณต๋ฐฐ์๋ 12์ด๋ฏ๋ก solution(3, 12)๋ [3, 12]๋ฅผ ๋ฐํํด์ผ ํฉ๋๋ค. ์ ํ ์กฐ๊ฑด ๋ ์๋ 1์ด์ 1000000์ดํ์ ์์ฐ์์ ๋๋ค. ์์ ์ ์ถ๋ ฅ ์ n m return 3 12 [3, 12] 2 5 [1, 10] ์ค๋ช ์ ์ถ๋ ฅ ์ #1 ์์ ์ค๋ช ๊ณผ ๊ฐ์ต๋๋ค. ์ ์ถ๋ ฅ ์ #2 ์์ฐ์ 2์ 5์ ์ต๋๊ณต์ฝ์๋ 1, ์ต์๊ณต๋ฐฐ์๋ 10์ด๋ฏ๋ก [1, 10]์ ๋ฆฌํดํด์ผ ํฉ๋๋ค. ๋ด๊ฐ ์์ฑํ ์ฝ๋ function solution(n, m) { const [..
javascript ๋ฌธ์ ์ค๋ช 1937๋ Collatz๋ ์ฌ๋์ ์ํด ์ ๊ธฐ๋ ์ด ์ถ์ธก์, ์ฃผ์ด์ง ์๊ฐ 1์ด ๋ ๋๊น์ง ๋ค์ ์์ ์ ๋ฐ๋ณตํ๋ฉด, ๋ชจ๋ ์๋ฅผ 1๋ก ๋ง๋ค ์ ์๋ค๋ ์ถ์ธก์ ๋๋ค. ์์ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. 1-1. ์ ๋ ฅ๋ ์๊ฐ ์ง์๋ผ๋ฉด 2๋ก ๋๋๋๋ค. 1-2. ์ ๋ ฅ๋ ์๊ฐ ํ์๋ผ๋ฉด 3์ ๊ณฑํ๊ณ 1์ ๋ํฉ๋๋ค. 2. ๊ฒฐ๊ณผ๋ก ๋์จ ์์ ๊ฐ์ ์์ ์ 1์ด ๋ ๋๊น์ง ๋ฐ๋ณตํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ์ฃผ์ด์ง ์๊ฐ 6์ด๋ผ๋ฉด 6 → 3 → 10 → 5 → 16 → 8 → 4 → 2 → 1 ์ด ๋์ด ์ด 8๋ฒ ๋ง์ 1์ด ๋ฉ๋๋ค. ์ ์์ ์ ๋ช ๋ฒ์ด๋ ๋ฐ๋ณตํด์ผ ํ๋์ง ๋ฐํํ๋ ํจ์, solution์ ์์ฑํด ์ฃผ์ธ์. ๋จ, ์ฃผ์ด์ง ์๊ฐ 1์ธ ๊ฒฝ์ฐ์๋ 0์, ์์ ์ 500๋ฒ ๋ฐ๋ณตํ ๋๊น์ง 1์ด ๋์ง ์๋๋ค๋ฉด –1์ ๋ฐํํด ์ฃผ์ธ..
javascript ๋ฌธ์ ์ค๋ช ์ ์๋ฅผ ๋ด๊ณ ์๋ ๋ฐฐ์ด arr์ ํ๊ท ๊ฐ์ returnํ๋ ํจ์, solution์ ์์ฑํด๋ณด์ธ์. ์ ํ ์กฐ๊ฑด arr์ ๊ธธ์ด 1 ์ด์, 100 ์ดํ์ธ ๋ฐฐ์ด์ ๋๋ค. arr์ ์์๋ -10,000 ์ด์ 10,000 ์ดํ์ธ ์ ์์ ๋๋ค. ์์ ์ ์ถ๋ ฅ ์ arr return [1,2,3,4] 2.5 [5,5] 5 ๋ด๊ฐ ์์ฑํ ์ฝ๋ function solution(arr) { const sum = arr.reduce((prev, cur) => prev + cur); return sum / arr.length; } ๋ฐฐ์ด์ ํฉ or ํ๊ท ์ ๊ตฌํ ๋ ๊ฐ์ฅ ์ ํฉํ ๋ฐฉ๋ฒ์ reduce ๋ฉ์๋๋ฅผ ํ์ฉํ๋ ๊ฒ์ด๋ค! ๋ฐ๋ณต๋ฌธ(for, for...of)์ ์ฌ์ฉํ์ง ์๊ธฐ ๋๋ฌธ์ ์ฑ๋ฅ๋ ์ข๋ค. ์คํ ๊ฒฐ๊ณผ ํ ์ค..
javascript ๋ฌธ์ ์ค๋ช ํ๋ก๊ทธ๋๋จธ์ค ๋ชจ๋ฐ์ผ์ ๊ฐ์ธ์ ๋ณด ๋ณดํธ๋ฅผ ์ํด ๊ณ ์ง์๋ฅผ ๋ณด๋ผ ๋ ๊ณ ๊ฐ๋ค์ ์ ํ๋ฒํธ์ ์ผ๋ถ๋ฅผ ๊ฐ๋ฆฝ๋๋ค. ์ ํ๋ฒํธ๊ฐ ๋ฌธ์์ด phone_number๋ก ์ฃผ์ด์ก์ ๋, ์ ํ๋ฒํธ์ ๋ท 4์๋ฆฌ๋ฅผ ์ ์ธํ ๋๋จธ์ง ์ซ์๋ฅผ ์ ๋ถ *์ผ๋ก ๊ฐ๋ฆฐ ๋ฌธ์์ด์ ๋ฆฌํดํ๋ ํจ์, solution์ ์์ฑํด์ฃผ์ธ์. ์ ํ ์กฐ๊ฑด phone_number๋ ๊ธธ์ด 4 ์ด์, 20์ดํ์ธ ๋ฌธ์์ด์ ๋๋ค. ์์ ์ ์ถ๋ ฅ ์ phone_number return "01033334444" "*******4444" "027778888" "*****8888" ๋ด๊ฐ ์์ฑํ ์ฝ๋ function solution(phone_number) { return '*'.repeat(phone_number.length - 4) + phone_..
javascript ๋ฌธ์ ์ค๋ช ํ๋ ฌ์ ๋ง์ ์ ํ๊ณผ ์ด์ ํฌ๊ธฐ๊ฐ ๊ฐ์ ๋ ํ๋ ฌ์ ๊ฐ์ ํ, ๊ฐ์ ์ด์ ๊ฐ์ ์๋ก ๋ํ ๊ฒฐ๊ณผ๊ฐ ๋ฉ๋๋ค. 2๊ฐ์ ํ๋ ฌ arr1๊ณผ arr2๋ฅผ ์ ๋ ฅ๋ฐ์, ํ๋ ฌ ๋ง์ ์ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ๋ ํจ์, solution์ ์์ฑํด์ฃผ์ธ์. ์ ํ ์กฐ๊ฑด ํ๋ ฌ arr1, arr2์ ํ๊ณผ ์ด์ ๊ธธ์ด๋ 500์ ๋์ง ์์ต๋๋ค. ์์ ์ ์ถ๋ ฅ ์ arr1 arr2 return [[1,2],[2,3]] [[3,4],[5,6]] [[4,6],[7,9]] [[1],[2]] [[3],[4]] [[4],[6]] ๋ด๊ฐ ์์ฑํ ์ฝ๋ function solution(arr1, arr2) { return arr1.map((n, i) => n.map((m, j) => arr1[i][j] + arr2[i][j])); } map ํจ..
javascript ๋ฌธ์ ์ค๋ช ์์ ์ ์ x๊ฐ ํ์ค๋ ์์ด๋ ค๋ฉด x์ ์๋ฆฟ์์ ํฉ์ผ๋ก x๊ฐ ๋๋์ด์ ธ์ผ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด 18์ ์๋ฆฟ์ ํฉ์ 1+8=9์ด๊ณ , 18์ 9๋ก ๋๋์ด ๋จ์ด์ง๋ฏ๋ก 18์ ํ์ค๋ ์์ ๋๋ค. ์์ฐ์ x๋ฅผ ์ ๋ ฅ๋ฐ์ x๊ฐ ํ์ค๋ ์์ธ์ง ์๋์ง ๊ฒ์ฌํ๋ ํจ์, solution์ ์์ฑํด์ฃผ์ธ์. ์ ํ ์กฐ๊ฑด x๋ 1 ์ด์, 10000 ์ดํ์ธ ์ ์์ ๋๋ค. ์์ ์ ์ถ๋ ฅ ์ arr return 10 true 12 true 11 false 13 false์ค๋ช ์ ์ถ๋ ฅ ์ #1 10์ ๋ชจ๋ ์๋ฆฟ์์ ํฉ์ 1์ ๋๋ค. 10์ 1๋ก ๋๋์ด ๋จ์ด์ง๋ฏ๋ก 10์ ํ์ค๋ ์์ ๋๋ค. ์ ์ถ๋ ฅ ์ #2 12์ ๋ชจ๋ ์๋ฆฟ์์ ํฉ์ 3์ ๋๋ค. 12๋ 3์ผ๋ก ๋๋์ด ๋จ์ด์ง๋ฏ๋ก 12๋ ํ์ค๋ ์์ ๋๋ค. ์ ์ถ๋ ฅ ์ #3 11์ ๋ชจ๋ ..
javascript ๋ฌธ์ ์ค๋ช ํจ์ solution์ ์ ์ x์ ์์ฐ์ n์ ์ ๋ ฅ ๋ฐ์, x๋ถํฐ ์์ํด x์ฉ ์ฆ๊ฐํ๋ ์ซ์๋ฅผ n๊ฐ ์ง๋๋ ๋ฆฌ์คํธ๋ฅผ ๋ฆฌํดํด์ผ ํฉ๋๋ค. ๋ค์ ์ ํ ์กฐ๊ฑด์ ๋ณด๊ณ , ์กฐ๊ฑด์ ๋ง์กฑํ๋ ํจ์, solution์ ์์ฑํด์ฃผ์ธ์. ์ ํ ์กฐ๊ฑด x๋ -10000000 ์ด์, 10000000 ์ดํ์ธ ์ ์์ ๋๋ค. n์ 1000 ์ดํ์ธ ์์ฐ์์ ๋๋ค. ์์ ์ ์ถ๋ ฅ ์ x n answer 2 5 [2,4,6,8,10] 4 3 [4,8,12] -4 2 [-4, -8] ๋ด๊ฐ ์์ฑํ ์ฝ๋ function solution(x, n) { let arr = new Array(n).fill(0); return arr.map((num, i) => x + (i*x)); } ์ ๋ ฅ๋ฐ์ ๋ฐฐ์ด์ ๊ธธ์ด์ธ n์ new Array..
javascript ๋ฌธ์ ์ค๋ช ์ด ๋ฌธ์ ์๋ ํ์ค ์ ๋ ฅ์ผ๋ก ๋ ๊ฐ์ ์ ์ n๊ณผ m์ด ์ฃผ์ด์ง๋๋ค. ๋ณ(*) ๋ฌธ์๋ฅผ ์ด์ฉํด ๊ฐ๋ก์ ๊ธธ์ด๊ฐ n, ์ธ๋ก์ ๊ธธ์ด๊ฐ m์ธ ์ง์ฌ๊ฐํ ํํ๋ฅผ ์ถ๋ ฅํด๋ณด์ธ์. ์ ํ ์กฐ๊ฑด n๊ณผ m์ ๊ฐ๊ฐ 1000 ์ดํ์ธ ์์ฐ์์ ๋๋ค. ์์ ์ ๋ ฅ 5 3 ์ถ๋ ฅ ***** ***** ***** ๋ด๊ฐ ์์ฑํ ์ฝ๋ process.stdin.setEncoding('utf8'); process.stdin.on('data', data => { const [n, m] = data.split(" "); for(let i=0; i
REFERENCE SCSS ๊ฐ์ด๋ SCSS SASS๋ CSS pre-processor๋ก์, ๋ณต์กํ ์ก์ ์ ์ฝ๊ฒ ํด์ฃผ๊ณ ์ฝ๋์ ์ฌํ์ฉ์ฑ์ ๋์ฌ์ค. (์ ์ง๋ณด์ ์ฉ์ด) ๋ณ์ Variable ์ ์ธ CSS์ ๋ณ์ ๊ฐ๋ ์ ๋์ ํด์ค. ๋ณ์ ์ฌ์ฉ์ $๊ธฐํธ๋ฅผ ์ฌ์ฉ. $primary-color: #333; body { background: $primary-color; } Variable Scope ํน์ ์ ํ์์์ ๋ณ์ ์ ์ธ์, ํด๋น ์ ํ์ ์์์๋ง ์ ๊ทผ ๊ฐ๋ฅ. ํ๋๊ทธ (flag) ์ ์ญ ๋ณ์ ์ค์ ์ : !global ๊ธฐ๋ณธ ๊ฐ ์ค์ ์ (๋ณ์๊ฐ undefined๋ null์ผ๋) : !default ํ๋๊ทธ๋ mixin ์์ฑ์ ์ ์ฉํ๊ฒ ์ฌ์ฉ๋จ. body { $primary-color: #eee !global; $sub-color:..
์ฐธ๊ณ ๋ฌธ์ My velog Redux 1. ์ฉ์ด ์ค๋ช ์ก์ ์์ฑํจ์ (action creator) ๋จ์ํ ๋งค๊ฐ๋ณ์๋ฅผ ๋ฐ์์์ ์ก์ ๊ฐ์ฒด ํํ๋ก ๋ง๋ค์ด์ค. ๋์ค์ ์ปดํฌ๋ํธ์์ ๋์ฑ ์ฝ๊ฒ ์ก์ ์ ๋ฐ์์ํค๊ธฐ ์ํจ. ๋ณดํต export ํค์๋๋ฅผ ๋ถ์ฌ์ ๋ค๋ฅธ ํ์ผ์์ ๋ถ๋ฌ์ ์ฌ์ฉํจ. ๋ฆฌ๋์ (reducer) ๋ณํ๋ฅผ ์ผ์ผํค๋ ํจ์. state,action ๋๊ฐ์ง์ ๋งค๊ฐ๋ณ์๋ฅผ ๋ฐ์์ด. ํ์ฌ ์ํ์ ์ก์ ์ ์ฐธ๊ณ ํ์ฌ ์๋ก์ด state๋ฅผ ๋ฆฌํดํจ. ๋ฆฌ๋์ค์์๋ ์ฌ๋ฌ๊ฐ์ ๋ฆฌ๋์๋ฅผ ๋ง๋ค๊ณ ํฉ์ณ์ ๋ฃจํธ ๋ฆฌ๋์(Root Reducer)์ ๋ง๋ค ์ ์์. ์ฐธ๊ณ useReducer์์๋ default:์ throw new Error('Unhandled Action')์ ๋ฃ์ง๋ง, ๋ฆฌ๋์ค์ reducer์์๋ state๋ฅผ ๊ทธ..