์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- ์๋ฐ์คํฌ๋ฆฝํธ
- TypeScript
- js
- ์๋ฐฉํฅ ์ฐ๊ฒฐ ๋ฆฌ์คํธ
- DP
- ๋ถ์คํธ์บ ํ์น๋ชจ๋ฐ์ผ
- ์ด๋ถํ์
- ๋ฐฑ์ค
- router v6
- ๋ธ๋ฃจํธํฌ์ค
- ์ฝํ
- ๋์ ๊ณํ๋ฒ
- Node.js
- JavaScript
- ์๊ณ ๋ฆฌ์ฆ
- ๋ถ์คํธ์ปจํผ๋ฐ์ค
- custom hook
- ์ฝ๋ ํฌ๋ฉง
- React
- icecandidate
- ํ๋ก๊ทธ๋๋จธ์ค
- svgํ์ผ ๋ค๋ฃจ๊ธฐ
- ๊ณผ์ ํ ์คํธ
- ๋ฆฌ๋์ค ํดํท
- ์นด์นด์ค์ฑ์ฉ
- ์นด์นด์ค
- ์ฝ๋ฉํ ์คํธ
- ์ด๋ฏธ์ง ์์
- Redux toolkit
- ๋๋๊ทธ ์ด๋ฒคํธ
- Today
- Total
๋ชฉ๋ก์ ์ฒด ๊ธ (100)
๐ฅ dev-ruby
๋ฌธ์ https://www.acmicpc.net/problem/5052 5052๋ฒ: ์ ํ๋ฒํธ ๋ชฉ๋ก ์ฒซ์งธ ์ค์ ํ ์คํธ ์ผ์ด์ค์ ๊ฐ์ t๊ฐ ์ฃผ์ด์ง๋ค. (1 ≤ t ≤ 50) ๊ฐ ํ ์คํธ ์ผ์ด์ค์ ์ฒซ์งธ ์ค์๋ ์ ํ๋ฒํธ์ ์ n์ด ์ฃผ์ด์ง๋ค. (1 ≤ n ≤ 10000) ๋ค์ n๊ฐ์ ์ค์๋ ๋ชฉ๋ก์ ํฌํจ๋์ด ์๋ ์ ํ๋ฒํธ๊ฐ www.acmicpc.net ์ฝ๋ function solve(phoneNumList) { phoneNumList.sort(); for (let i = 1; i < phoneNumList.length; i++) { const prevNum = phoneNumList[i - 1]; const currNum = phoneNumList[i]; if (currNum.startsWith(prevNum)) r..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/vb9zX/btrBo12UdCZ/eAu0QlCJpkxkYJKlOVJLO0/img.png)
๋ฌธ์ https://programmers.co.kr/learn/courses/30/lessons/92343 ์ฝ๋ฉํ ์คํธ ์ฐ์ต - ์๊ณผ ๋๋ [0,0,1,1,1,0,1,0,1,0,1,1] [[0,1],[1,2],[1,4],[0,8],[8,7],[9,10],[9,11],[4,3],[6,5],[4,6],[8,9]] 5 [0,1,0,1,1,0,1,0,0,1,0] [[0,1],[0,2],[1,3],[1,4],[2,5],[2,6],[3,7],[4,8],[6,9],[9,10]] 5 programmers.co.kr ํ์ด function solution(info, edges) { const tree = Array.from({ length: info.length }, () => []); for (const [parent, ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/dmwFEj/btrBhBdQZfm/Nmhu7RwDGdpAJDp1rIHO0k/img.jpg)
๋ฌธ์ https://programmers.co.kr/learn/courses/30/lessons/42892 ์ฝ๋ฉํ ์คํธ ์ฐ์ต - ๊ธธ ์ฐพ๊ธฐ ๊ฒ์ [[5,3],[11,5],[13,3],[3,5],[6,1],[1,3],[8,6],[7,2],[2,2]] [[7,4,6,9,1,8,5,2,3],[9,6,5,8,1,4,3,2,7]] programmers.co.kr ํ์ด function solution(nodeinfo) { const sorted = nodeinfo .map((el, index) => [...el, index + 1]) .sort((a, b) => (a[1] === b[1] ? a[0] - b[0] : b[1] - a[1])); function order(sorted, preAnswer, postAnsw..
๋ฌธ์ https://programmers.co.kr/learn/courses/30/lessons/81303 ์ฝ๋ฉํ ์คํธ ์ฐ์ต - ํ ํธ์ง 8 2 ["D 2","C","U 3","C","D 4","C","U 2","Z","Z"] "OOOOXOOO" 8 2 ["D 2","C","U 3","C","D 4","C","U 2","Z","Z","U 1","C"] "OOXOXOOO" programmers.co.kr ํ์ด function solution(n, k, cmd) { const stack = []; const answer = Array.from({ length: n }, () => "O"); const list = Array.from({ length: n }, (_, index) => [index - 1, in..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/PvJf9/btrA7aMzvMZ/WXbG8KJcQvgpMdT88eGV2k/img.png)
๋ฌธ์ https://programmers.co.kr/learn/courses/30/lessons/64062 ์ฝ๋ฉํ ์คํธ ์ฐ์ต - ์ง๊ฒ๋ค๋ฆฌ ๊ฑด๋๊ธฐ [2, 4, 5, 3, 2, 1, 4, 2, 5, 1] 3 3 programmers.co.kr ํ์ด ์ ํ์ฑO, ํจ์จ์ฑX ์ฝ๋ function solution2(stones, k) { // ์ ํ์ฑ๋ง ํต๊ณผ let start = 1, end = Math.max(...stones); while (start num - mid); let count = 0; for (const num of temp) { if (num = k) break; } if (count >= k) end = mid - 1; else { start = mid + 1; } } return start; } ..
๋ฌธ์ https://www.acmicpc.net/problem/15686 15686๋ฒ: ์นํจ ๋ฐฐ๋ฌ ํฌ๊ธฐ๊ฐ N×N์ธ ๋์๊ฐ ์๋ค. ๋์๋ 1×1ํฌ๊ธฐ์ ์นธ์ผ๋ก ๋๋์ด์ ธ ์๋ค. ๋์์ ๊ฐ ์นธ์ ๋น ์นธ, ์นํจ์ง, ์ง ์ค ํ๋์ด๋ค. ๋์์ ์นธ์ (r, c)์ ๊ฐ์ ํํ๋ก ๋ํ๋ด๊ณ , rํ c์ด ๋๋ ์์์๋ถํฐ r๋ฒ์งธ ์นธ www.acmicpc.net ํ์ด function solve() { const twoIdxList = [], oneIdxList = []; for (let i = 0; i < n; i++) { for (let j = 0; j < n; j++) { if (city[i][j] === 2) twoIdxList.push([i, j]); else if (city[i][j] === 1) oneIdxList.p..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/cGjWG2/btryc7GFuU6/6KaCDMyONFMRpzi3KC1Ep1/img.png)
์ง์ง ๊ณต์ ๋ฌธ์๋ง ์ฃผ์๊น๊ฒ ์ฝ์ด๋ ๋์ง ์์ ์๋ฌ๋ค์ด ๋ง์ ๊ฒ ๊ฐ๋ค..ใ 1. Could not find proper version of cocoapods (1.11.3) in any of the sources Run `bundle install` to install missing gems. ์ ๊ทธ๋ฐ์ง ๋ชจ๋ฅด๊ฒ ๋ค๋ง.. pod install ์ ํ๋ฉด ์๊พธ๋ง ์ ์๋ฌ๊ฐ ๋๋ค. ๊ทธ๋ด ๊ฒฝ์ฐ ํ๋ผ๋ ๋๋ก ํ๋ฉด๋๋ค. $ bundle install ์ ์คํํ pod install ์ ํ๋ฉด ์๋๋ค. 2. Command failed: ./gradlew app:installDebug -PreactNativeDevServerPort=8081 ์ด๊ฑด ์ด์ด์๋ ์ค๋ฅ ใ ์ด๋ฏธ ์คํ ์ค์ธ ํฌํธ๊ฐ ์๋ ๊ฑฐ๋ค. ํฐ๋ฏธ๋์์ ๋ญ๊ฐ ๋์๊ฐ๊ณ ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/ba64PS/btrxid8J2NU/FyhkYn6CiP4RKjvDiy0zA1/img.png)
๋๋ MacOS M1์นฉ์ ์ฌ์ฉ์ค์ด๋ค. ์ด๋ฒ์ React-native๋ก ์ฌ์ง์ฒฉ์ ์ ๊ทผํ ํ์๊ฐ ์์ด์ ์ด๊ธฐ ์ค์ ์ ํ๋์ค์ ๊ฐ๋ฐ์ธ์ ์ค ๊ฐ์ฅ ๋ง์ ์ค๋ฅ๋ฅผ ๋ง๋ฌ๋ค..ใ ์ด๋์ ์ฑ์ ์ ๋ง ๊ณจ์น์ํ๋ค ์ฐ์ ์ฑ ์ ๋ณด๊ณ ์ ํ ์ ํ๊ธฐ ๋๋ฌธ์ ์์๋๋ก Xcode, cocoapods๋ฅผ ์ค์นํ๋ค. (XCode๋ ์ฑ์คํ ์ด์์ ์ค์น ) sudo gem install -g cocoapods ์ค์น ์๋ฃํ react-native init๋ช ๋ น์ด๋ก ํ๋ก์ ํธ๋ฅผ ๋ง๋ค๊ณ iosํด๋์ cd๋ก ๋ค์ด๊ฐ yarn ios๋ฅผ ์คํํ๋๋ .. ์๋์ ๊ฐ์ ์ค๋ฅ๋ฅผ ๋ง๋ฌ๋ค. export GENERATE_INFOPLIST_FILE\=NO export GENERATE_MASTER_OBJECT_FILE\=NO export GENERATE_PKGINFO_FILE..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/b8wVC6/btrxkfY3iNe/BRZc8PNOXkkusuv0YEuDK1/img.png)
๋๋ macOS M1์ ์ฌ์ฉ์ค์ด๋ค. ํฐ๋ฏธ๋์์ npm install -global yarn ๋ช ๋ น์ด๋ก yarn์ ์ค์นํ๋ค. ํฐ๋ฏธ๋์์ yarn -v ๋ก ๋ฒ์ ์ ํ์ธํด๋ณด๋ฉด ์ฌ๋ฐ๋ฅด๊ฒ ์ถ๋ ฅ๋์๋ค. ํ์ง๋ง VSCodeํฐ๋ฏธ๋์์๋ ๊ณ์ํด์ ๋ค์๊ณผ ๊ฐ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค..๐คฏ zsh: command not found: yarn ์ค๋ฅ๋ฅผ ํด๊ฒฐํ๋ ค๋ ์์๋๋ก ์ ๊ฒ ๋ค.(ํด๊ฒฐ X๋ ์ ๋ฐฉ๋ฒ์ผ๋ก ํด๊ฒฐ๋์ง ์์๊ฒ.) 1. ํด๊ฒฐX brew uninstall yarn npm uninstall yarn npm install -global yarn 2. ํด๊ฒฐX You should add export PATH="$PATH:$(yarn global bin)" to your ~/.bash_profile 3. ํด๊ฒฐO https://realap..
๋ฌธ์ (https://www.acmicpc.net/problem/14501) ์๋ด์์ผ๋ก ์ผํ๊ณ ์๋ ๋ฐฑ์ค์ด๋ ํด์ฌ๋ฅผ ํ๋ ค๊ณ ํ๋ค. ์ค๋๋ถํฐ N+1์ผ์งธ ๋๋ ๋ ํด์ฌ๋ฅผ ํ๊ธฐ ์ํด์, ๋จ์ N์ผ ๋์ ์ต๋ํ ๋ง์ ์๋ด์ ํ๋ ค๊ณ ํ๋ค. ๋ฐฑ์ค์ด๋ ๋น์์๊ฒ ์ต๋ํ ๋ง์ ์๋ด์ ์ก์ผ๋ผ๊ณ ๋ถํ์ ํ๊ณ , ๋น์๋ ํ๋ฃจ์ ํ๋์ฉ ์๋ก ๋ค๋ฅธ ์ฌ๋์ ์๋ด์ ์ก์๋์๋ค. ๊ฐ๊ฐ์ ์๋ด์ ์๋ด์ ์๋ฃํ๋๋ฐ ๊ฑธ๋ฆฌ๋ ๊ธฐ๊ฐ Ti์ ์๋ด์ ํ์ ๋ ๋ฐ์ ์ ์๋ ๊ธ์ก Pi๋ก ์ด๋ฃจ์ด์ ธ ์๋ค. N = 7์ธ ๊ฒฝ์ฐ์ ๋ค์๊ณผ ๊ฐ์ ์๋ด ์ผ์ ํ๋ฅผ ๋ณด์. 1์ผ 2์ผ 3์ผ 4์ผ 5์ผ 6์ผ 7์ผ Ti 3 5 1 1 2 4 2 Pi 10 20 10 20 15 40 200 1์ผ์ ์กํ์๋ ์๋ด์ ์ด 3์ผ์ด ๊ฑธ๋ฆฌ๋ฉฐ, ์๋ดํ์ ๋ ๋ฐ์ ์ ์๋ ๊ธ์ก์ 10์ด๋ค..
๋ฌธ์ https://programmers.co.kr/learn/courses/30/lessons/43238 ์ฝ๋ฉํ ์คํธ ์ฐ์ต - ์ ๊ตญ์ฌ์ฌ n๋ช ์ด ์ ๊ตญ์ฌ์ฌ๋ฅผ ์ํด ์ค์ ์์ ๊ธฐ๋ค๋ฆฌ๊ณ ์์ต๋๋ค. ๊ฐ ์ ๊ตญ์ฌ์ฌ๋์ ์๋ ์ฌ์ฌ๊ด๋ง๋ค ์ฌ์ฌํ๋๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ ๋ค๋ฆ ๋๋ค. ์ฒ์์ ๋ชจ๋ ์ฌ์ฌ๋๋ ๋น์ด์์ต๋๋ค. ํ ์ฌ์ฌ๋์์๋ ๋์์ ํ programmers.co.kr ํ์ด function solution(n, times) { times.sort((a, b) => a - b); let min = times[0]; let max = n * times[times.length -1]; while(min acc + Math.floor(mid / curr), 0); // ํ ์ฌ๋๋น ๋ช๋ช ํ ์ ์๋์ง console.log(min, ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/yPQHM/btrrOcObi88/9CyJyE66Iw5E4x2H2mPNAk/img.png)
๋ฌธ์ https://www.acmicpc.net/problem/11052 11052๋ฒ: ์นด๋ ๊ตฌ๋งคํ๊ธฐ ์ฒซ์งธ ์ค์ ๋ฏผ๊ท๊ฐ ๊ตฌ๋งคํ๋ ค๊ณ ํ๋ ์นด๋์ ๊ฐ์ N์ด ์ฃผ์ด์ง๋ค. (1 ≤ N ≤ 1,000) ๋์งธ ์ค์๋ Pi๊ฐ P1๋ถํฐ PN๊น์ง ์์๋๋ก ์ฃผ์ด์ง๋ค. (1 ≤ Pi ≤ 10,000) www.acmicpc.net ํ์ด function solution(N, price){ let dp = [0, ...price]; for(let i = 2; i +el); console.log(solution(N, price)) ์ฒ์์ ์ผ์ผ์ด N๊ฐ๋ฅผ ๋ฝ์ ์ ์๋ ์กฐํฉ์ ๊ฒฝ์ฐ ์๋ฅผ ๋ค ๊ตฌํ๋๋ฐ, ์๋ฌด๋ฆฌ๋ด๋ ์ข ๋ ์ฝ๊ฒ ํ ์ ์์ ๊ฒ ๊ฐ์๋ค. ์ ์ฝ๋๋ ๊ฐ i๋ง๋ค i๊ฐ์ฉ ๋ฝ์ ์ ์๋ ๊ฒฝ์ฐ์ ์ ๋ณ๋ก ์ต๋๊ฐ์ ๊ณ์ ์ ๋ฐ์ดํธ ํด์ฃผ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/ZBuBB/btrrJt3dUTP/rHapwrJrpztlJK2QNCJ2hK/img.gif)
์ด์ง ํ์ (์ด๋ถ ํ์, Binary Search) ์ด์ง ํ์ ์๊ณ ๋ฆฌ์ฆ์ ์ ๋ ฌ๋์ด ์๋ ๋ฆฌ์คํธ์์ ํ์ ๋ฒ์๋ฅผ ์ ๋ฐ์ฉ ์ขํ๊ฐ๋ฉฐ ๋ฐ์ดํฐ๋ฅผ ํ์ํ๋ ๋ฐฉ๋ฒ์ด๋ค. ์ด์ง ํ์์ ๋ฐฐ์ด์ ๋ฐ์ดํฐ๊ฐ ์ ๋ ฌ๋์ด ์์ด์ผ๋ง ์ฌ์ฉํ ์ ์๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ค. ๋ณ์ 3๊ฐ(start, mid, end)๋ฅผ ์ฌ์ฉํ์ฌ ํ์ํ๋ค. ์ฐพ๊ณ ์ํ๋ ๋ฐ์ดํฐ์ ๋ฐฐ์ด์ ์ค๊ฐ(mid) ์์น์ ์๋ ๋ฐ์ดํฐ๋ฅผ ๋ฐ๋ณต์ ์ผ๋ก ๋น๊ตํด์ ์ํ๋ ๋ฐ์ดํฐ๋ฅผ ์ฐพ๋ ๊ฒ์ด ์ด์ง ํ์์ด๋ค. ์ด์ง ํ์(Binary Search)์ ํ์ ๊ณผ์ ์์ ๋ฐ์ดํฐ ์งํฉ์์ 8์ด๋ ๋ฐ์ดํฐ๋ฅผ ํ์ํ๋๋ก ํ์. ์ฐ์ ์ฒซ๋ฒ์งธ๋ก ๋ฐฐ์ด์ ์ค๊ฐ ์์๋ฅผ ์ ํํ๋ค. mid = 7; ๋๋ฒ์งธ๋ก๋ ์ค๊ฐ ๊ฐ๊ณผ ์ฐพ์ผ๋ ค๋ ๊ฐ์ ์๋ก ๋น๊ตํ๋ค. ๋ง์ฝ ์ฐพ์ผ๋ ค๋ ๊ฐ์ด ์ค๊ฐ ๊ฐ๋ณด๋ค ์๋ค๋ฉด ์ค์ ์์์ ์ผ์ชฝ์์ ์ค๊ฐ ๊ฐ์ ๋ค..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/5o305/btrrB5Cnk12/CXfaRRMKFW2sUgo1l4xPN1/img.png)
์น ํ๋ก์ ํธ๋ฅผ ์๋ก ์์ํ๊ธฐ ์ํด์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ฐ์์ ๊ฐ๋ฐํ๊ฒฝ์ ๊ตฌ์ถํ๋ ์ผ๋ถํฐ ์์ํด์ผ ํ๋ค. ์ฒ์์๋ CRA(create-react-app)์ผ๋ก ๊ฐ๋ฐํ๊ฒฝ์ ๊ตฌ์ถํ์ง๋ง "CRA ์์ด ๊ฐ๋ฐํ๊ฒฝ์ ๊ตฌ์ถํด๋ณด๊ธฐ" ๊ณต๋ถ๋ฅผ ํ๊ธฐ ์ํด ์์ฑํด๋ณธ๋ค. 1. package.json ์์ฑ ์ฒซ ๋ฒ์งธ๋ package.json ํ์ผ๋ถํฐ ์์ฑํด์ผํ๋ค. npm init -y ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ package.json๋ฅผ ์์ฑํ์. yarn init -y ์ ์ฌ์ฉํด๋ ๋๋ค. npm init ๋ง ์ ๋ ฅํ๊ฒ ๋๋ฉด ์ฌ์ฉ์์๊ฒ package.jsonํ์ผ์ name์ด๋ version, license๋ฑ์ ๋ฌป๋๋ฐ, -y ๋ช ๋ น์ ๋ถ์ด๋ฉด npm์ package.json ๊ธฐ๋ณธ๊ฐ์ ๋ฐ๋ผ ํ์ผ์ด ์์ฑ๋๋ค. ์์ธํ ๋ด์ฉ์ npm init docs์์ ํ์ธํ..
reduce ํ์ฉํ๊ธฐ const adj = []; const difIdx = [...el].reduce((acc, curr, idx) => curr !== word[idx] ? acc += 1 : acc, 0); if(difIdx === 1) adj.push(el); ๊ฐ๋จํ๊ฒ for๋ฌธ์ ๋๋ ค์ ์นด์ดํธ๋ฅผ ์ฆ๊ฐ์ํค๋ฉด ๋น๊ตํ๊ณ ์ ํ๋ ๋ฌธ์์ด๊ณผ ๋ช๊ฐ์ ๋ฌธ์๊ฐ ๋ค๋ฅธ์ง ์ ์ ์์ง๋ง, reduce๋ฅผ ํ์ฉํ ์๋ ์๋ค! ์์ ์์์์ ๋ณด๋ฉด, difIdx ๋ ๋ค๋ฅธ ๋ฌธ์์ ๊ฐ์๊ฐ ์ ์ฅ๋ ๊ฒ์ด๋ค. ์๋ฅผ ๋ค์ด, word = 'apple', el = 'appel'์ผ ๊ฒฝ์ฐ ๋ค์ 2๋ฌธ์๊ฐ ๋ค๋ฅด๋ฏ๋ก difIdx = 2๊ฐ ๋๋ค.