![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/blEuZp/btraImMtRdo/qlQxR2HF2wuidoJkUL16Uk/img.png)
๋ฌธ์ ์๋ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ ์ด์งํธ๋ฆฌ๋ฅผ ์ ์์ํ, ์ค์์ํ, ํ์์ํ๋ฅผ ๋ ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํ์ธ์. ๊ฐ๋ ํธ๋ฆฌ(Tree) ๋ ธ๋(node)๋ก ์ด๋ฃจ์ด์ง ๋น์ ํ ์๋ฃ ๊ตฌ์กฐ ํธ๋ฆฌ๋ ํ๋์ ๋ฃจํธ(root) ๋ ธ๋๋ฅผ ๊ฐ๊ณ ์์ ๋ฃจํธ ๋ ธ๋๋ 0๊ฐ ์ด์์ ์์ ๋ ธ๋๋ฅผ ๊ฐ๊ณ ์์ ๊ทธ ์์ ๋ํ 0๊ฐ ์ด์์ ์์ ๋ ธ๋๋ฅผ ๊ฐ๊ณ ์๊ณ , ์ด๋ ๋ฐ๋ณต์ ์ผ๋ก ์ ์ ๋ ธ๋์ ๋ ธ๋๋ฅผ ์ฐ๊ฒฐํ๋ ๊ฐ์ (edge)๋ค๋ก ๊ตฌ์ฑ ๋ฃจํธ ๋ ธ๋(root node): ๋ถ๋ชจ๊ฐ ์๋ ๋ ธ๋, ํธ๋ฆฌ๋ ํ๋์ ๋ฃจํธ ๋ ธ๋๋ง์ ๊ฐ์ง ๋จ๋ง ๋ ธ๋(leaf node): ์์์ด ์๋ ๋ ธ๋, '๋ง๋จ ๋ ธ๋' ๋๋ '์ ๋ ธ๋' ๋ผ๊ณ ๋ ๋ถ๋ฆผ ๋ด๋ถ ๋ ธ๋(internal node): ๋จ๋ง ๋ ธ๋๊ฐ ์๋ ๋ ธ๋ ๊ฐ์ (edge): ๋ ธ๋๋ฅผ ์ฐ๊ฒฐํ๋ ์ (link, branch ๋ผ๊ณ ๋ ๋ถ๋ฆ) ํ์ (sibling..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bJAxFI/btraCSdvQ9U/18DKUUNLxBJx6ObG5Gdx71/img.jpg)
๋ฌธ์ 10์ง์ N์ด ์ ๋ ฅ๋๋ฉด 2์ง์๋ก ๋ณํํ์ฌ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์ธ์. ๋จ, ์ฌ๊ท ํจ์๋ฅผ ์ด์ฉํด์ ์ถ๋ ฅํด์ผ ํฉ๋๋ค. ๋ฌธ์ ํ์ด ์คํ ํ๋ ์(Stack Frame) ๋ฉ๋ชจ๋ฆฌ์ ์คํ(stack) ์์ญ์ ํจ์์ ํธ์ถ๊ณผ ๊ด๊ณ๋๋ ์ง์ญ ๋ณ์์ ๋งค๊ฐ ๋ณ์๊ฐ ์ ์ฅ๋๋ ์์ญ โถ JS: ์ฝ ์คํ(Call Stack)์ ์ ์ฌ๋๋ ํจ์์ ๊ด๋ จ๋ ์ ๋ณด๋ ํจ์ ๋ ์์ปฌ ํ๊ฒฝ(Functional Lexcial Environment)์ ๊ตฌ์ฑํ๋ ์ปดํฌ๋ํธ ์ค ํ๋์ธ ํจ์ ํ๊ฒฝ ๋ ์ฝ๋(Functional Environment Record)์ ์ ์ฅ๋๋ค. ํจ์ ํ๊ฒฝ ๋ ์ฝ๋๋ ๋งค๊ฐ๋ณ์, arguments ๊ฐ์ฒด, ํจ์ ๋ด๋ถ์์ ์ ์ธํ ์ง์ญ ๋ณ์์ ์ค์ฒฉ ํจ์๋ฅผ ๋ฑ๋กํ๊ณ ๊ด๋ฆฌํ๋ค. ์คํ ์์ญ์ ํจ์์ ํธ์ถ๊ณผ ํจ๊ป ํ ๋น(push)๋๋ฉฐ, ํจ์์ ..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/A1cMj/btrao7jiDHt/yh5qxgIIbO15EkkrC4CcA1/img.png)
๋ฌธ์ window.addEventListener('scroll', function (event) { let {scrollTop, scrollHeight, clientHeight} = event.target.scrollingElement; let ratio = (scrollTop / contentHeight) * 100; //์ ์ฒด ๋ฌธ์์ ๋ํ ํ์ฌ ์คํฌ๋กค๋ ๋น์จ๋ฅผ ํผ์ผํธํ scrollBar.style.transform = `translateX(-${100 - ratio}%)`; scrollBar.style.transition = 'transform 0.5s ease-out'; }) ๋ค์๊ณผ ๊ฐ์ด ์คํฌ๋กค๋ ๋น์จ์ ๋ฐ๋ผ Scroll Indicator๊ฐ ๋์ ์ผ๋ก ์์ง์ด๋๋ก ์ฝ๋๋ฅผ ๊ตฌํํ์๋ค. ํ์ง๋ง ์คํฌ๋กค์ด ๋๊น..
๋ฌธ์ li.addEventListener('click', () => { const obj = { image: this.dataset.image, ...JSON.parse(this.dataset.user) } modal.classList.add('active'); thumbnail.src = obj.image; profileImg.src = obj.medium; userName.textContent = obj.name; insta.textContent = obj.instagram_username; }) https://choi95.tistory.com/106 JS ์์์ ์ดํธ๋ฆฌ๋ทฐํธ์ ๊ฐ์ฒด ๋์ ํ ๋น https://unsplash.com/documentation#get-a-random-photo Unsplas..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/cn5bDB/btrav6vVdUr/20lL3Mn8jLyxsO792IpTgk/img.gif)
https://unsplash.com/documentation#get-a-random-photo Unsplash API Documentation | Free HD Photo API | Unsplash Getting started This document describes the resources that make up the official Unsplash JSON API. If you have any problems or requests, please contact our API team. Creating a developer account To access the Unsplash API, first join. Registering your appl unsplash.com ๋ค์๊ณผ ๊ฐ์ด API๋ฅผ ํตํด ์ด..
๋ฌธ์ ์ง๋๋ ์ฝ๋์์๋ ๋ถ์ธ์ถ์ ๊ฐ์ ์กฐ์ํ์ ๋ผ์ด๋ธ ๋์์์ DVD๋ก ๋ง๋ค์ด ํ๋งคํ๋ ค ํ๋ค. DVD์๋ ์ด N๊ฐ์ ๊ณก์ด ๋ค์ด๊ฐ๋๋ฐ, DVD์ ๋ นํํ ๋์๋ ๋ผ์ด๋ธ์์์ ์์๊ฐ ๊ทธ๋๋ก ์ ์ง ๋์ด์ผ ํ๋ค. ์์๊ฐ ๋ฐ๋๋ ๊ฒ์ ์ฐ๋ฆฌ์ ๊ฐ์ ์กฐ์ํ์จ๊ฐ ๋งค์ฐ ์ซ์ดํ๋ค. ์ฆ, 1๋ฒ ๋ ธ๋์ 5๋ฒ ๋ ธ๋๋ฅผ ๊ฐ์ DVD์ ๋ นํํ๊ธฐ ์ํด์๋ 1๋ฒ๊ณผ 5๋ฒ ์ฌ์ด์ ๋ชจ๋ ๋ ธ๋๋ ๊ฐ์ DVD์ ๋ นํํด์ผ ํ๋ค. ๋ํ ํ ๋ ธ๋๋ฅผ ์ชผ๊ฐ์ ๋ ๊ฐ์ DVD์ ๋ นํํ๋ฉด ์๋๋ค. ์ง๋๋ ์ฝ๋ ์ ์ฅ์์๋ ์ด DVD๊ฐ ํ๋ฆด ๊ฒ์ธ์ง ํ์ ํ ์ ์๊ธฐ ๋๋ฌธ์ ์ด ์ฌ์ ์ ๋ญ๋น๋๋ DVD๋ฅผ ๊ฐ๊ธ์ ์ค์ด๋ ค๊ณ ํ๋ค. ๊ณ ๋ฏผ ๋์ ์ง๋๋ ์ฝ๋๋ M๊ฐ์ DVD์ ๋ชจ๋ ๋์์์ ๋ นํํ๊ธฐ ๋ก ํ์๋ค. ์ด ๋ DVD์ ํฌ๊ธฐ(๋ นํ ๊ฐ๋ฅํ ๊ธธ์ด)๋ฅผ ์ต์๋ก ํ๋ ค๊ณ ํ๋ค. ๊ทธ๋ฆฌ๊ณ ..
๋ฌธ์ ์์์ N๊ฐ์ ์ซ์๊ฐ ์ ๋ ฅ์ผ๋ก ์ฃผ์ด์ง๋๋ค. N๊ฐ์ ์๋ฅผ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ ๋ค์ N๊ฐ์ ์ ์ค ํ ๊ฐ์ ์์ธ M์ด ์ฃผ์ด์ง๋ฉด์ด๋ถ๊ฒ์์ผ๋ก M์ด ์ ๋ ฌ๋ ์ํ์์ ๋ช ๋ฒ์งธ์ ์๋์ง ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์ธ์.(๋จ ์ค๋ณต๊ฐ์ ์กด์ฌํ์ง ์์ต๋๋ค) ์ฝ๋ function solution(target, arr) { let answer = 0; arr.sort((a, b) => {return a - b}); let mid = Math.floor(arr.length/2); while(mid !== 0) { if(target === arr[mid]) { answer = mid + 1; break; } else { mid = Math.floor(mid/2); } } return answer; } let arr = [23,..
๋ฌธ์ ํ์๋ ๋ค์ ๋ฌ์ ๊ฒฐํผ์ ํฉ๋๋ค. ํ์๋ ๊ฒฐํผ์ ํผ๋ก์ฐ์ ์ฅ์๋ฅผ ๋น๋ ค 3์ผ๊ฐ ์ฌ์ง ์๊ณ ํ๋ ค๊ณ ํฉ๋๋ค. ํผ๋ก์ฐ์ ์ฐธ์ํ๋ ์น๊ตฌ๋ค N๋ช ์ ์ฐธ์ํ๋ ์๊ฐ์ ๋ณด๋ฅผ ํ์๋ ์น๊ตฌ๋ค์๊ฒ ๋ฏธ๋ฆฌ ์๊ตฌํ์ต๋๋ค. ๊ฐ ์น๊ตฌ๋ค์ ์์ ์ด ๋ช ์์ ๋์ฐฉํด์ ๋ช ์์ ๋ ๋ ๊ฒ์ธ์ง ํ์์๊ฒ ์๋ ค์ฃผ์์ต๋๋ค. ํ์๋ ์ด ์ ๋ณด๋ฅผ ๋ฐํ์ผ๋ก ํผ๋ก์ฐ ์ฅ์์ ๋์์ ์กด์ฌํ๋ ์ต๋ ์ธ์์๋ฅผ ๊ตฌํ์ฌ ๊ทธ ์ธ์์ ์์ฉํ ์ ์๋ ์ฅ์๋ฅผ ๋น๋ฆฌ๋ ค๊ณ ํฉ๋๋ค. ์ฌ๋ฌ๋ถ์ด ํ์๋ฅผ ๋์์ฃผ์ธ์. (๋ง์ฝ ํ ์น๊ตฌ๊ฐ ์ค๋ ์๊ฐ 13, ๊ฐ๋์๊ฐ 15๋ผ๋ฉด ์ด ์น๊ตฌ๋ 13์ ์ ๊ฐ์ ํผ๋ก์ฐ ์ฅ์ ์กด์ฌํ๋ ๊ฒ์ด๊ณ 15์ ์ ๊ฐ์๋ ์กด์ฌํ์ง ์๋๋ค๊ณ ๊ฐ์ ํฉ๋๋ค) ๋ฌธ์ ํ์ด ์ด๋ฒคํธ๊ฐ start(์ฐธ์์๊ฐ)๊ณผ end(๋ ๋์๊ฐ) ๋ ๊ฐ๋ก ๋๋๋ค. ๊ฐ ์๊ฐ๊ณผ ํด๋น ์๊ฐ์ ์ผ์ด๋ ์ด๋ฒคํธ๋ฅผ ..