์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 | 29 | 30 |
- suspense react-query
- ๋ฐฑ์ค 1339๋ฒ js
- ํ๋ก๊ทธ๋๋จธ์ค ๊ฑฐ๋ฆฌ๋๊ธฐ ํ์ธํ๊ธฐ
- ๋ฆฌ์กํธ์ฟผ๋ฆฌ suspense
- emotion RSC
- ์นด์นด์ค ์ฝํ
- ์๋ฐ์คํฌ๋ฆฝํธ ์ค์ฝํ
- ๋ฐฑ์ค 2108 ์๋ฐ์คํฌ๋ฆฝํธ
- ๋ฐฑ์ค 1339๋ฒ ์๋ฐ์คํฌ๋ฆฝํธ
- ์๋ฐ์คํฌ๋ฆฝํธ ๋ฌธ์์ด ์์ถ
- ์ฌ์ฉ์ฑ ๊ฐ์
- ํ๋ก๊ทธ๋๋จธ์ค ๋ฌธ์์ด ์์ถ
- ์ค์ฝํ
- ๊ตฌ๋ฆํค ์ฑ๋ฆฐ์ง
- suspense ๋ณ๋ชฉํ์
- TypeError: createContext only works in Client Components. Add the "use client" directive at the top of the file to use it. Read more:
- js ๋ฌธ์์ด ์์ถ
- ์ต์ ๋์ฒด์ด๋
- js
- js ์ค์ฝํ
- next13 emotion
- ๊ตฌ๋ฆํค
- ๋ฐฑ์ค 2108 nodejs
- ๋ฐฑ์ค 1339๋ฒ nodejs
- suspense ๋์์๋ฆฌ
- emtion app router
- js ๊ฑฐ๋ฆฌ๋๊ธฐ ํ์ธํ๊ธฐ
- ๊ตฌ๋ฆํค ์ฑ๋ฆฐ์ง ํ๊ณ
- suspense ๋น๋๊ธฐ
- app router emotion
- Today
- Total
Lennon FE
๋ฐฑ์ค nodejs ์ ๋ ฅํ๋ ๋ฐฉ๋ฒ / ๋ฐฑ์ค ์๋ฐ์คํฌ๋ฆฝํธ ์ ๋ ฅ ๋ณธ๋ฌธ
๋ฐฑ์ค nodejs ์ ๋ ฅํ๋ ๋ฐฉ๋ฒ / ๋ฐฑ์ค ์๋ฐ์คํฌ๋ฆฝํธ ์ ๋ ฅ
Lennon 2022. 1. 20. 17:50์ด๊ธฐ์ ํ๋ก ํธ์๋ ๊ฐ๋ฐ์๋ฅผ ์ค๋นํ๋ ๋ถ๋ค์ด๋ผ๋ฉด ๋ถํธํ ์ ์ด ํ๋ ์๋ค.
๋ฐ๋ก ์๊ณ ๋ฆฌ์ฆ์ ๊ฝ์ด๋ผ๋ ๋ฐฑ์ค์์ ๋ฌธ์ ๋ฅผ ํธ๋ ๋ฐฉ๋ฒ์ด๋ค...๐ฅฒ
ํ๋ก๊ทธ๋๋จธ์ค์ฒ๋ผ ํจ์์ return ํด์ฃผ๋ ๊ฒ ์๋ ์ ๋ ฅ๊ฐ์ ๋ํ console ์ถ๋ ฅ์ ํด์ผ ํ๋ ๋ฐฑ์ค์์ ๋ฌธ์ ๋ฅผ ํธ๋ ๊ฑด ๋ฒ๊ฑฐ๋กญ๋ค.
๊ทธ๋ฌ๋ ๋ฐฑ์ค์์ ๋ฌธ์ ํธ๋ ๊ฒ์ ์ ๋ง ๊ฐ๋จํ๋ฉฐ, ํด๋น ํฌ์คํ ์์ ๋ชจ๋ ์ด์ฉํ ์ ์๋๋ก ์ฝ๊ฒ ์ค๋ช ํด๋ณด๊ฒ ๋ค.
๋จผ์ ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํ์ด๋ฅผ ์ํด ํด๋๋ฅผ ํ๋ ์์ฑํ๊ณ vscode์์ ์ด์ด๋ณด์.
์๋ ์ฌ์ง์ ๋ณธ์ธ์ ํด๋ ๊ตฌ์กฐ์ด๋ค.
baekjoon ํ์ด์, programmers ํ์ด๋ ๋๋ ์์ง๋ง, ํด๋น ํฌ์คํ ์์๋ baekjoon ํด๋๋ง ํ์ธํด๋ณด๋๋ก ํ์.
๋ค์ํ ๋ด๋ถ ํด๋ ๊ฐ์ด๋ฐ, baekjoonํด๋์ ์ ์ญ ์์น ์ ์ผ ํ๋จ์ input.txt ํ์ผ์ด ๋ณด์ผ ๊ฒ์ด๋ค.
ํด๋น ํ์ผ์๋ ์๋ ์ฌ์ง๊ณผ ๊ฐ์ด ๋ฐฑ์ค์์ ๋ณผ ์ ์๋ ์์ ๋ฅผ ๋ณต์ฌํด์ ๋ถ์ฌ ๋ฃ๋ txt ํ์ผ์ด๋ค.
๋ณธ์ธ์ ํด๋น. txt ํ์ผ์ fs๋ก ๋ถ๋ฌ์์ vscode์์ ์ฝ๋๋ฅผ ๋๋ ค๋ณด๊ณ ๋ฐฑ์ค์์ ์ ์ถํ๋ ํ์์ผ๋ก ๊ตฌ์ฑํ๊ณ ์๋ค.
fs(File System)์ ๊ธฐ๋ณธ์ ์ผ๋ก ๊ตฌ์ฑ๋์ด ์์ผ๋ฏ๋ก ๋ฐ๋ก ์ฌ์ฉํ ์ ์๋ ๋ชจ๋์ด๋ค.
๋๋ถ๋ถ์ ๋ฌธ์ ๋ ์๋์ ๋์จ ์ฝ๋๋ค์ ๊ฐ๋จํ ์์ ํ์ฌ ๋ฐ๋ก ์ ๋ ฅ๋ฐ์ ์ ์๋ค.
๋ณธ์ธ์ input.txt ํ์ผ์ด ํด๋ ์ธ๋ถ์ ์์ผ๋ฏ๋ก ../input.txt ๋ก txt ํ์ผ์ ๋ถ๋ฌ์๋ค,
const fs = require('fs');
let input = fs.readFileSync('../input.txt').toString().trim().split('\n');
const fs = require('fs')
fs๋ชจ๋์ ๋ถ๋ฌ์ fs ๋ณ์์ ๋ฃ์ ๊ฒ์ด๋ค.
fs.readFileSync
๊ฐ๋จํ ๋งํด ์ด๋ค ํ์ผ์ ๋ถ๋ฌ์ฌ ๊ฑด์ง์ ๋ํ ๊ฒ์ด๊ณ , ๊ฒฝ๋ก๋ฅผ ์ ๋ ฅํ๋ฉด ๋๋ค.
toString()
ํ์ ์์ด ๋ณด์ผ ์ ์์ง๋ง, ๋ฐฑ์ค์ ์ฝ๋๋ฅผ ์ ์ถํ ๋๋ ../input.txt ๊ฒฝ๋ก๋ฅผ dev/stdin์ผ๋ก ์์ ํด์ผ ํ๊ณ ํด๋น ๋ฐํ ๊ฐ์ Buffer๊ฐ์ฒด์ด๋ค. ๋ฐ๋ผ์ ๋ฌธ์์ด๋ก ๋ฐ๊ฟ์ค์ผ ์์์น ๋ชปํ ์ค๋ฅ๋ฅผ ๋ฐฉ์งํ ์ ์๋ค.
trim()
๊ฐํ ๋ฌธ์๋ฅผ ์์ ์ฃผ๋ ํจ์์ด๋ค. ์ผ๋ถ ์ ๋ ฅ๊ฐ์ ๋ง์ง๋ง ๊ฐํ์ด ๋ค์ด๊ฐ ์๋ ๊ฒฝ์ฐ๊ฐ ์์ผ๋ฏ๋ก ๊ธฐ๋ณธ๊ฐ์ผ๋ก ์ฌ์ฉํด๋ ๋ฌด๋ฐฉํ๋ค.
split()
๋ง์ด ๋ณด์ จ์ ํจ์์ด๋ค. ๋ฌธ์์ด์ ๋ฐฐ์ด๋ก ๋ฐ๊ฟ์ค๋ค.
์์ ์์ ์ฒ๋ผ ๊ฐํ๋์ด ์ ๋ ฅ๋๋ ๊ฐ์ .split('\n')์ ์ด์ฉํด ๋ฐฐ์ด๋ก ๋ฐ์ ์ ์๋ค.
ํ ๋ฒ ์์๋ฅผ ๋ค์ด๋ณด์.
const fs = require('fs');
let input = fs.readFileSync('../input.txt').toString().trim().split('\n');
input.txt๊ฐ์ด ์์ฒ๋ผ ๊ฐํ๋์ด ์ ๋ ฅ๋์๊ณ , ์ ์ฝ๋๋ฅผ ์์ฑํ๋ค๋ฉด input๊ฐ์ ['4', '3', '0', '4', '0'] ์ผ๋ก ๋ฐ์์ง ๊ฒ์ด๋ฉฐ,
์ด๋๋ถํฐ input์ ํ๋ก๊ทธ๋๋จธ์ค ํจ์์ ์ธ์์ฒ๋ผ ์ด์ฉํด ๋ฌธ์ ๋ฅผ ํ๊ณ console์ ์ถ๋ ฅํ๋ฉด ๋ ๊ฒ์ด๋ค.
๋ง์ฝ ์ ๋ฌธ์์ด ๊ฐ์ ์ซ์๋ก ๋ฐ๊ณ ์ถ๋ค๋ฉด ์ด๋กํด์ผ ํ ๊น?
const fs = require('fs');
let input = fs
.readFileSync('../input.txt')
.toString()
.trim()
.split('\n')
.map(v => +v);
map์ ์ด์ฉํด ๋ฌธ์์ด ๋ณ์๋ฅผ ์ซ์๋ก ๋ฐ๊ฟ ์ ์๋ค.
input๊ฐ์ [4, 3, 0, 4, 0] ์ผ๋ก ๋ฐ์์ง ๊ฒ์ด๋ค.
๋ง์ฝ ์ ๋ ฅ๊ฐ์ด ์๋์ฒ๋ผ ์ฃผ์ด์ง๋ฉด ์ด๋ป๊ฒ ํด์ผ ํ ๊น?
const fs = require('fs');
let input = fs.readFileSync('../input.txt').toString().trim().split('\n');
์ด๋ ๊ฒ ํ๋ฉด input์ด [ '4', '3 5 2 7']๊ฐ์ผ๋ก ๊ตฌ์ฑ์ด ๋ ๊ฒ์ด๋ค.
์ ๊ธฐ์ ํ์ ์๋ ๊ฐ์ ์ผ๋จ '4'์ด๋ค. ๋ค๋ฅธ ์ธ์ด๋ผ๋ฉด ์คํํ ๊ฐ์๋ฅผ ์ ๋ ฅํ๋ ค๊ณ ์ ๋ ฅํ๋ ๊ฐ์ด๊ธฐ ๋๋ฌธ์ด๋ค.
const fs = require('fs');
let input = fs.readFileSync('../input.txt').toString().trim().split('\n');
input.shift();
input = input[0].split(' '); // ๋จ์ ๋ฐฐ์ด์ split
shift๋ฅผ ์ด์ฉํด '4' ๊ฐ์ ์์ ๊ณ , ๋์ด์ฐ๊ธฐ ํ๋์ ๋ํด split์ ์ด์ฉํ๋ฉด ['3', '5', '2', '7'] ๋ก ๊ตฌ์ฑ๋ ๊ฒ์ด๋ค.
์ฆ ๋๋ถ๋ถ์ ๊ฐ๋ค์ ์ ๋์ ์ผ๋ก ์์ฒญ ์ฝ๊ฒ ์ ๋ ฅ๊ฐ์ ๋ํด ๊ตฌ์ฑํ ์ ์๋ค.
ps) ๋ง์ฝ ์ข ๋ฃ์กฐ๊ฑด์ด ์๋ ๊ฑฐ๋ผ๋ฉด pop()์ ์ด์ฉํด ์์ ์ฃผ์.
ํด๋น input์ ์ด์ฉํด ๋ฌธ์ ๋ฅผ ํ์์ ๋, vscode์์ ์ ๋๋ก ๋๋์ง ํ์ธํด๋ณด๊ณ ์ถ์ ๊ฒ์ด๋ค.
์ด์ ํฐ๋ฏธ๋๋ก ๋ค์ด๊ฐ ๋ณด์.
๋ง์ฝ ๋ณธ์ธ์ฒ๋ผ baekjoon์ด๋ผ๋ ํด๋์ ๋ด๋ถ ํด๋์ธ ์คํ์์ 9012.js์ ๋ํ ์ถ๋ ฅ ๊ฐ์ ๋ณด๊ณ ์ถ๋ค๋ฉด ์๋์ฒ๋ผ ์ ๋ ฅํ๋ฉด ๋๋ค.
cd baekjoon/์คํ
node 9012.js
input๊ฐ์ด ์ ๋๋ก ์ค์ ๋๋์ง ๋ฑ 9012.js์์ ์ถ๋ ฅ๋ ๊ฒฐ๊ณผ๋ฅผ ํฐ๋ฏธ๋์์ ํ์ธํ ์ ์๊ณ , ์ ๋ต ๊ฐ์ผ๋ฉด ๋ฐฑ์ค์ ์ ์ถํ๋ฉด ๋๋ค!
๋ฐฑ์ค์ ์ ์ถํ๊ธฐ
์ ๋ต์ ์ ์ถํ๊ธฐ ์ํด ๋ณธ์ธ์ ์ฝ๋๋ฅผ ๋ณต์ฌํ๋ค.
fs.readFileSync('../input.txt') ์ ๊ฒฝ๋ก๋ฅผ fs.readFileSync('dev/stdin') ์ผ๋ก ์์ ํ ํ ์ ์ถํ๋ฉด ๋์ด๋ค.
const fs = require('fs');
//let input = fs.readFileSync('../input.txt').toString().trim().split('\n');
let input = fs.readFileSync('dev/stdin').toString().trim().split('\n');
์ฌ๊ธฐ๊น์งํ๊ณ 1-2 ๋ฌธ์ ํ๋ค๋ณด๋ฉด ๊ฐ์ด ์ฌ๊ฒ์ด๋ค.
ํ๋ค๋ณด๋ฉด ์ ๋ง ์ฒ๋ฆฌํ๊ธฐ๋ ๊ท์ฐฎ์ input๊ฐ์ด ์์ฃผ ๋์ฌ๊ฒ์ด๋ค. ๋ฌธ์ ํ์ด ์ค๊ฐ์๋ณด๋ค input์ฒ๋ฆฌ ์ค ๊ฐ์๊ฐ ๋ ๋ง์์ง๋ ๊ฒฝ์ฐ๋ ์๋ค.
๋๋จธ์ง input๊ฐ์ ๋ํ ์กฐ์ ์ ํ๋ก๊ทธ๋๋จธ์ ๋ชซ์ด์ ์ญ๋์ด๋ผ ์๊ฐํ๋ฉฐ ์ฒ์ฒํ ์๋ํด๋ณด์.
'๐ฅ Algorithm > Baekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค 17298๋ฒ] ์คํฐ์ - ์๋ฐ์คํฌ๋ฆฝํธ(nodejs) (0) | 2022.01.21 |
---|---|
[๋ฐฑ์ค 4949๋ฒ] ๊ท ํ์กํ ์ธ์ - ์๋ฐ์คํฌ๋ฆฝํธ(nodejs) (0) | 2022.01.20 |
[๋ฐฑ์ค 9012๋ฒ] ๊ดํธ - ์๋ฐ์คํฌ๋ฆฝํธ(nodejs) (0) | 2022.01.20 |
[๋ฐฑ์ค 10773๋ฒ] ์ ๋ก - ์๋ฐ์คํฌ๋ฆฝํธ(nodejs) (0) | 2022.01.20 |
[๋ฐฑ์ค 10828๋ฒ] ์คํ - ์๋ฐ์คํฌ๋ฆฝํธ(nodejs) (0) | 2022.01.20 |