๐ช Programming
[Next.js] App Router / ์๋ฒ ์ปดํฌ๋ํธ ์ฃผ์ ๋ด์ฉ ์ ๋ฆฌ
[Next.js] App Router / ์๋ฒ ์ปดํฌ๋ํธ ์ฃผ์ ๋ด์ฉ ์ ๋ฆฌ
2024.06.01App Router vs Page Router๊ธฐ๋ฅ์ฑ ๋ผ์ฐํฐํ์ด์ง ๋ผ์ฐํฐ๋ผ์ฐํ
ํ์
์๋ฒ ์ค์ฌํด๋ผ์ด์ธํธ ์ฌ์ด๋์๋ฒ ์ปดํฌ๋ํธ ์ง์OX๋ณต์ก๋๋ ๋ณต์กํจ๋ ๊ฐ๋จํจ์ฑ๋ฅ๋ ์ข์๋ ๋์จ์ ์ฐ์ฑ๋ ์ ์ฐํจ๋ ์ ์ฐํจํ์ผ ๊ธฐ๋ฐ ๋ผ์ฐํ
์ค์ฒฉ ํด๋๋ฅผ ์ฌ์ฉํด ๋ผ์ฐํธ ์ ์ํ์ผ์ด ์ง์ ๋ผ์ฐํธ๋ฅผ ๋ํ๋์ปดํฌ๋ํธ ๊ธฐ๋ณธ์ ์ผ๋ก ์๋ฒ ์ปดํฌ๋ํธ๊ธฐ๋ณธ์ ์ผ๋ก ํด๋ผ์ด์ธํธ ์ปดํฌ๋ํธ๋ฐ์ดํฐ ํ์นญfetch ํจ์ ์ฌ์ฉgetServerSideProps, getStaticProps, getInitialProps ์ฌ์ฉ๋ ์ด์์๋ ์ด์์ ์ค์ฒฉ / ๋์ ๋ ์ด์์์ ์ ๋ ์ด์์๋์ ๋ผ์ฐํธ์ง์ํ์ง๋ง ๋ฌธ๋ฒ ๋ค๋ฆLink ์ปดํฌ๋ํธ๋ก ์ง์์ฐ์ ์์ํ์ด์ง ๋ผ์ฐํฐ๋ณด๋ค ์ฐ์ ์ฑ ๋ผ์ฐํธ๊ฐ ์์ ๊ฒฝ์ฐ ๋์ฒด ์๋ฒ ์ปดํฌ๋ํธNext.js ๋ฒ์ 13~๋ถํฐ ์ ๊ณตํ๋ App Router๋ฅผ ์ฌ์ฉํ๋ฉด ์๋ฒ ์ปดํฌ๋ํธ๊ฐ ..
[Algorithm] ๋ฏธ๋๋งฅ์ค / ์ํ-๋ฒ ํ ๊ฐ์ง์น๊ธฐ ์๊ณ ๋ฆฌ์ฆ ํบ์๋ณด๊ธฐ
[Algorithm] ๋ฏธ๋๋งฅ์ค / ์ํ-๋ฒ ํ ๊ฐ์ง์น๊ธฐ ์๊ณ ๋ฆฌ์ฆ ํบ์๋ณด๊ธฐ
2024.06.01๋ฏธ๋๋งฅ์ค ์๊ณ ๋ฆฌ์ฆ๊ฐ๋
๐ก ์ ๋ก์ฌ ๊ฒ์์ ํ ํ๋ ์ด์ด๊ฐ ์ด๋์ ์ป์ผ๋ฉด ๋ค๋ฅธ ํ๋ ์ด์ด๋ ๊ทธ๋งํผ ์ํด๋ฅผ ๋ณด๋ ๊ฒ์์ ๊ฐ๋ฆฌํจ๋ค. ๋ฏธ๋๋งฅ์ค ์๊ณ ๋ฆฌ์ฆ์ ํฑํํ , ์ฒด์ค์ฒ๋ผ 2๋ช
์ด ์ฐธ์ฌํ๋ ์ ๋ก์ฌ ๊ฒ์์์ ๊ฐ์ฅ ๋๋ฆฌ ์ฌ์ฉํ๋ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก, ๋ชจ๋ ํ๋ ์ด์ด๊ฐ ์ต์ ์ ์๋ฅผ ๋๋ค๊ณ ๊ฐ์ ํ๊ณ ๊ฐ๋ฅํ ๋ชจ๋ ์๋ฅผ ๊ณ ๋ คํ์ฌ ์น๋ฆฌํ ์ ์๋ ์ ๋ต์ ๋์ถํ ๋ ์ฌ์ฉํ๋ค. X ํ๋ ์ด์ด๋ ์น๋ฆฌํ๊ธฐ ์ํด ์ต๋ ์ ์๋ฅผ ์ป์ผ๋ ค ํ๊ณ , O ํ๋ ์ด์ด๋ ํจ๋ฐฐํ์ง ์๊ธฐ ์ํด ์ต์ ์ ์๋ฅผ ์ป์ผ๋ ค ํ๋ ์ํฉ์์ ์ต์ ์ ํด๋ฅผ ์ฐพ๋ ๋ฐฉ๋ฒ์ด๋ค. ํ์ฌ X ํ๋ ์ด์ด ์ฐจ๋ก์ด๊ณ , X ํ๋ ์ด์ด๊ฐ ์ ํํ ์ ์๋ ๊ณณ์ 1, 4, 5๋ฒ ์ธ๋ฑ์ค(Zero-Based)๋ผ๊ณ ๊ฐ์ ํด ๋ณธ๋ค. X๊ฐ ์ด๊ธฐ๋ฉด +100์ , O๊ฐ ์ด๊ธฐ๋ฉด -100์ ์ ํ๋ํ๋ค. ๋ณด๋์ ๋ชจ๋ ์๋ฅผ ๋์ง๋ง ๋ฌด์น..
[React] ํฑํํ (Tic-Tac-Toe) ๊ฒ์ ์ฃผ์ ๋ก์ง ํบ์๋ณด๊ธฐ
[React] ํฑํํ (Tic-Tac-Toe) ๊ฒ์ ์ฃผ์ ๋ก์ง ํบ์๋ณด๊ธฐ
2024.05.30ํฑํํ ์๊ฐํฑํํ ๋ 2๋ช
์ ํ๋ ์ด์ด๊ฐ ์์ ์ ๊ธฐํธ(X, O) 3๊ฐ๋ฅผ ๊ฐ๋ก, ์ธ๋ก, ๋๊ฐ์ ์ผ๋ก ์ฐ์ํด์ ๋์ด๋๋ก ํ๋ ๋ณด๋ ๊ฒ์์ด๋ค. ๊ฒ์์ ์ฃผ๋ก 3x3 ๊ฒฉ์ ๋ณด๋์์ ์งํ๋๋ค. ํ๋ ์ด์ด๋ ๋ฒ๊ฐ์๊ฐ๋ฉด์ ์์ ์ ๊ธฐํธ๋ฅผ ๋๊ณ , ํ ์นธ์ ํ ๊ฐ์ ๊ธฐํธ๋ง ๋์ ์ ์๋ค. ๋ชจ๋ ์นธ์ ๊ธฐํธ๋ฅผ ๋์์ง๋ง ์ด๋ ํ์ชฝ๋ ์ฐ์์ ์ธ ์ธ ๊ฐ์ ๊ธฐํธ๋ฅผ ๋ฐฐ์ดํ์ง ๋ชปํ๋ฉด ๊ฒ์์ ๋ฌด์น๋ถ๋ก ๋๋๋ค(๋ฌด์น๋ถ๊ฐ ๋ง์ ๊ฒ์). ์น๋ฆฌ ์กฐ๊ฑด ์ฒดํฌํฑํํ ๋ ํ๋ ฌ๋ก ์ด๋ค์ง 2์ฐจ์ ๋ณด๋์์ ์งํํ์ง๋ง, 1์ฐจ์ ๋ฐฐ์ด๋ก ๊ด๋ฆฌํ๋ฉด ๊ฐ ์นธ์ ๋จ์ผ ์ธ๋ฑ์ค๋ก ์ ๊ทผํ ์ ์๊ธฐ ๋๋ฌธ์ ๋ฐ์ดํฐ๋ฅผ ๋ ์์ํ๊ฒ ๊ด๋ฆฌํ ์ ์๋ค. ๊ฒ์ ๋ก์ง์ ๊ตฌํํ ๋๋ ์ธ๋ฑ์ค ๊ณ์ฐ์ ๋จ์ํ์์ผ ์ฝ๋์ ๋ณต์ก์ฑ์ ์ค์ด๋ ๋ฐ ๋์์ด ๋๋ค. ๋ํ, 1์ฐจ์ ๋ฐฐ์ด์ ๊ทธ๋ฆฌ๋ ์คํ์ผ์ ์ด์ฉํด 2์ฐจ์ ๋ณด..
[JS] Array.fill() ๋ฉ์๋ ์ฌ์ฉ ์ ์ฃผ์ํ ์
[JS] Array.fill() ๋ฉ์๋ ์ฌ์ฉ ์ ์ฃผ์ํ ์
2024.05.30Array.fill() ๋ฉ์๋๋ ์ด๋ฆ ๊ทธ๋๋ก ์ฒซ ๋ฒ์งธ ์ธ์์ ์ฃผ์ด์ง ๊ฐ์ผ๋ก ๋ฐฐ์ด์ ๋ชจ๋ ์์๋ฅผ ์ฑ์ฐ๋ ๋ฉ์๋๋ค. ์ฃผ๋ก Array() ์์ฑ์์ ํจ๊ป ์ฌ์ฉํ์ฌ, ์ด๊ธฐ๊ฐ์ด ํ ๋น๋ ๋ฐฐ์ด์ ์์ฑํ ๋ ์ ์ฉํ๊ฒ ์ฐ์ธ๋ค.Array.fill(value, start?, end?)// length๊ฐ 2์ธ ๋น ๋ฐฐ์ด ์์ฑ ํ null๋ก ์ฑ์const filledArray = Array(2).fill(null);console.log(filledArray); // [null, null]const numbers = [1, 2, 3, 4];// 2~3๋ฒ ์ธ๋ฑ์ค๋ฅผ null๋ก ์ฑ์ (start ํฌํจ, end ๋ฏธํฌํจ)numbers.fill(null, 2, 4);console.log(numbers); // [1, 2, null, null]..
[JS] Bitwise ๋นํธ ์ฐ์ฐ์ ํบ์๋ณด๊ธฐ (feat. ๋นํธ๋ง์คํฌ)
[JS] Bitwise ๋นํธ ์ฐ์ฐ์ ํบ์๋ณด๊ธฐ (feat. ๋นํธ๋ง์คํฌ)
2024.05.29๋นํธ ์ฐ์ฐ์๋ ์ ์์ ์ด์ง ํํ, ์ฆ ๋นํธ(0๊ณผ 1) ๋จ์๋ก ๊ณ์ฐํ๋ ์ฐ์ฐ์๋ค. ์ฃผ๋ก ์ฑ๋ฅ ์ต์ ํ, ๋ฉ๋ชจ๋ฆฌ ์ ์ฝ, ์๊ณ ๋ฆฌ์ฆ ๊ตฌํ ๋ฑ์์ ์ฌ์ฉํ๋ค. ์๋ฐ์คํฌ๋ฆฝํธ๋ 64๋นํธ ๋ถ๋์์์ ํ์์ผ๋ก ์ซ์๋ฅผ ์ ์ฅํ์ง๋ง, ๋นํธ ์ฐ์ฐ์ ์ํํ ๋ ๋ด๋ถ์ ์ผ๋ก ํผ์ฐ์ฐ์๋ฅผ 32๋นํธ ์ ์๋ก ๋ณํํ๋ค. ์ด๋ ๋นํธ ์ฐ์ฐ์ด ์ ์์๋ง ์ ์ฉ๋๊ธฐ ๋๋ฌธ. ๋ณํ ๊ณผ์ ์์ ์์๋ถ๋ ๋ฒ๋ ค์ง๊ณ 32๋นํธ ์ ์๋ง ์ฐ์ฐ์ ์ฌ์ฉ๋๋ค. 2์ ๋ณด์ ํํ๋ฒ2์ ๋ณด์ ํํ๋ฒ์ ๋นํธ๋ฅผ ์ด์ฉํด ์์๋ฅผ ๋ํ๋ด๋ ํ์ค ๋ฐฉ์์ผ๋ก, ์ ์์ ์ด์ง ํํ์์ ๋ชจ๋ ๋นํธ๋ฅผ ๋ฐ์ ์ํจ ํ(1์ ๋ณด์) 1์ ๋ํ๋ ๋ฐฉ์์ผ๋ก ๊ณ์ฐํ๋ค. ์ฆ, 1์ ๋ณด์์ 1์ ๋ํ๋ฉด 2์ ๋ณด์๊ฐ ๋๋ค. ์ด๋ ์ต์์ ๋นํธ(Most Significant Bit; ๋ถํธ ๋นํธ; ๊ฐ์ฅ ์ผ์ชฝ์ ์๋ ๋นํธ)๊ฐ ..
[JS] ์ ๋์ฝ๋์ ์ ๋์ฝ๋ ํ๋กํผํฐ
[JS] ์ ๋์ฝ๋์ ์ ๋์ฝ๋ ํ๋กํผํฐ
2024.05.29์ ๋์ฝ๋๐ก ์๋ฐ์คํฌ๋ฆฝํธ๋ ๋ชจ๋ ๋ฌธ์์ด์ UTF-16์ผ๋ก ์ธ์ฝ๋ฉํ๋ค. UTF-16์ ๊ธฐ๋ณธ์ ์ผ๋ก 2๋ฐ์ดํธ(16๋นํธ)๋ก ์ธ์ฝ๋ฉํ์ง๋ง, 2๋ฐ์ดํธ๋ก ํํํ ์ ์๋ ์ด๋ชจ์ง, ํน์ ๊ธฐํธ ๊ฐ์ ๋ฌธ์๋ ์๋ก๊ฒ์ดํธ ํ์ด๋ฅผ ํตํด 4๋ฐ์ดํธ๋ฅผ ์ฌ์ฉํ๋ค. ์ด๋ฅผ ๋ณด์ถฉ ๋ฌธ์๋ผ๊ณ ๋ถ๋ฅธ๋ค. ์๋ก๊ฒ์ดํธ ํ์ด๋ U+10000(65536) ์ด์์ ์ฝ๋ ํฌ์ธํธ๋ฅผ ํํํ๊ธฐ ์ํด ๋ ๊ฐ์ 2๋ฐ์ดํธ ์ฝ๋ ์กฐํฉ์ผ๋ก ๋ณด์ถฉ ๋ฌธ์๋ฅผ ํํํ๋ ๋ฐฉ์์ด๋ค. ์๋ฐ์คํฌ๋ฆฝํธ๋ ์ ๋์ฝ๋๋ฅผ ์ฌ์ฉํด์ ๋ฌธ์์ด์ ์ธ์ฝ๋ฉํ๋ค. ์ ๋์ฝ๋๋ ์ ์ธ๊ณ์ ๋ค์ํ ๋ฌธ์์ ๊ธฐํธ๋ฅผ ํํํ ์ ์๋๋ก ์ค๊ณ๋ ๊ตญ์ ํ์ค์ด๋ค. ์ ๋์ฝ๋์์ ๊ฐ ๋ฌธ์๋ ๊ณ ์ ํ ์ฝ๋ ํฌ์ธํธ(ํด๋น ๋ฌธ์์ด์ ๋ํํ๋ ์ซ์)๋ฅผ ๊ฐ์ง๋ค. ์ฝ๋ ํฌ์ธํธ๋ U+ ์ ๋์ฌ์ 16์ง์ ์ซ์๋ฅผ ํฉ์น ํ๊ธฐ๋ฒ์ ์ฌ์ฉํ๋ค. ์๋ฅผ๋ค์ด ์..
[TS] ํ์
์คํฌ๋ฆฝํธ ํด๋์ค(class) ๋ฌธ๋ฒ, ์ถ์ ํด๋์ค์ ๋ฉ์๋
[TS] ํ์ ์คํฌ๋ฆฝํธ ํด๋์ค(class) ๋ฌธ๋ฒ, ์ถ์ ํด๋์ค์ ๋ฉ์๋
2024.05.29ํด๋์ค ์ ์์๋ฐ์คํฌ๋ฆฝํธ์์ ์์ฑ์ ๋ด๋ถ์์ ํ๋กํผํฐ๋ฅผ ์ ์ธํ๊ณ ์ด๊ธฐํํ๋ค. ํด๋์ค ํ๋๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ๋ฅผ ์ ์ธํ๊ณค ํด๋์ค ๋ฐ๋์ ํ๋กํผํฐ๋ฅผ ๋ฐ๋ก ์ ์ธํ ํ์๊ฐ ์๋ค. ๋ฐ๋ฉด ํ์
์คํฌ๋ฆฝํธ์์ ๋จผ์ ํด๋์ค ๋ฐ๋์ ํ๋กํผํฐ๋ฅผ ๋ฏธ๋ฆฌ ์ ์ธํ๊ณ ํ์
์ ์ง์ ํด์ผ ํ๋ค. ํด๋์ค ๋ฐ๋์ ํ๋กํผํฐ๋ฅผ ์ ์ธํ์ง ์์ผ๋ฉด ์๋ฌ๊ฐ ๋ฐ์ํ๋ค.class User { name: string; // ํ๋กํผํฐ ์ ์ธ ๋ฐ ํ์
์ง์ constructor(name: string) { this.name = name; // ํ๋กํผํฐ ์ด๊ธฐํ }}const user = new User('John');console.log(user); // { name: 'John' } ํ์
์คํฌ๋ฆฝํธ์์ public, protected, private ์ ๊ทผ ์ ํ์..
[DevTools] ์น์์ VSCode ์ฌ์ฉํ๊ธฐ - github.dev / github1s
[DevTools] ์น์์ VSCode ์ฌ์ฉํ๊ธฐ - github.dev / github1s
2024.05.29์น์์ ๋ ํฌ์งํ ๋ฆฌ๋ฅผ ์ดํด๋ณด๋ค๊ฐ ์ฝ๋๋ฅผ ์ข ๋ ํธํ๊ฒ ๋ค์ฌ๋ค๋ณด๊ณ ์ถ์ ๋ github1s ์๋น์ค๋ฅผ ์ด์ฉํด์ ์น ๊ธฐ๋ฐ VSCode ํ๊ฒฝ์ผ๋ก ๋ณผ ์ ์๋ค. github1s๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด github ๋๋ฉ์ธ ๋ค์ 1s๋ฅผ ๋ถ์ฌ์ github1s.com/... ์ฃผ์๋ก ์ด๋ํด์ผ ํ๋ค. ๋ณดํต์ ์ฃผ์๋ฅผ ๋ณ๊ฒฝํด์ฃผ๋ ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋๋ฅผ ์ฆ๊ฒจ์ฐพ๊ธฐ์ ์ถ๊ฐํด ๋๊ณ ์ฌ์ฉํ๋ค.javascript: window.location.href = window.location.href.replace(/github(1s)?.com/, function(match, p1) { return p1 ? 'github.com' : 'github1s.com' }) ๊ทธ๋ฌ๋ค ์ฐ์ฐํ Github์์ ๊ณต์์ผ๋ก ์ ๊ณตํ๋ github.dev๋ผ๋ ์๋น์ค๋ฅผ ๋ฐ๊ฒฌํ๋ค. gi..
[AWS] VSCode์์ AWS EC2 ์๊ฒฉ ์ฐ๊ฒฐ / EC2 ๋ฉ๋ชจ๋ฆฌ ๋ถ์กฑ ํด๊ฒฐ
[AWS] VSCode์์ AWS EC2 ์๊ฒฉ ์ฐ๊ฒฐ / EC2 ๋ฉ๋ชจ๋ฆฌ ๋ถ์กฑ ํด๊ฒฐ
2024.05.29ํฐ๋ฏธ๋๋ก AWS EC2์ ์ ์ํด์ ์๋ฒ ์ฝ๋๋ฅผ ์์ ํ๋ ค๋ฉด Nano๋ Vim ๋ฑ์ ์ด์ฉํด์ผ ํ๋ค. ์ต์ํ VSCode ํ๊ฒฝ์ด ์๋๊ธฐ ๋๋ฌธ์ ์คํ๊ฐ ๋ฐ์ํ ๊ฐ๋ฅ์ฑ๋ ๋๊ณ , ์ด ์๋ํฐ๋ค์ ๊ธฐ๋ณธ ์ค์ ์ Linter๋ ์๋๊ธฐ ๋๋ฌธ์ ๋ถํธํ๋ค. VSCode ํ์ฅ ๊ธฐ๋ฅ์ ์ด์ฉํด AWS EC2์ ์๊ฒฉ ์ ์ํ ํ VSCode์์ ์ฝ๋๋ฅผ ์ง์ ์์ ํ ์ ์๋ค. VSCode์์ EC2 ์ธ์คํด์ค SSH ์ฐ๊ฒฐโถ VSCode ํ์ฅ๊ธฐ๋ฅ Remote SSH ์ค์น (๋งํฌ) โท CMD SHIFT P ๋ช
๋ น ์ปค๋งจ๋ → Remote-SSH: Connect to Host → Configure SSH Hosts → ์ฌ์ฉ์ ์์ค์ config ํ์ผ ํด๋ฆญ โธ SSH Config ํ์ผ ์ค์ # ์
๋ ฅ ์์Host aws-ec2-seoul-privat..
[JS] ๋ฐ๋๋ผ ์๋ฐ์คํฌ๋ฆฝํธ๋ก ๋ง๋ฆฌ์ค ๋ฌ๋ ๊ฒ์ ๊ตฌํํ๊ธฐ
[JS] ๋ฐ๋๋ผ ์๋ฐ์คํฌ๋ฆฝํธ๋ก ๋ง๋ฆฌ์ค ๋ฌ๋ ๊ฒ์ ๊ตฌํํ๊ธฐ
2024.05.29๋ฌ๋ ๊ฒ์(๋ฌ๋ฆฌ๊ธฐ ๊ฒ์)์ ํ๋ ์ด์ด๊ฐ ์๋์ผ๋ก ์ ์งํ๋ฉด์ ์ฅ์ ๋ฌผ์ ํํผํ๊ณ , ์ ์๋ฅผ ํ๋ํ๋ ๊ฒ์ ์ ํ์ด๋ค. ๊ฐ๋จํ ๋ฌ๋ ๊ฒ์์ ์บ๋ฒ์ค ์์ด JavaScript, HTML, CSS ๋ง์ผ๋ก๋ ๊ตฌํํ ์ ์๋ค. ๋ฌ๋ ๊ฒ์ ๊ตฌํ์ ํฌ๊ฒ โ ์ด๋(์ ์ง), โก์ ํ, โข์ฅ์ ๋ฌผ ๋ฐฐ์น, โฃ์ฅ์ ๋ฌผ ์ถฉ๋ ๊ฐ์ง๋ก ๋๋ ์ ์๋ค. ์ํผ ๋ง๋ฆฌ์ค๋ ํ๋ ์ด์ด๊ฐ ์บ๋ฆญํฐ๋ฅผ ์ง์ ์กฐ์ข
ํ๋ ํ๋ซํฌ๋จธ ์ฅ๋ฅด์ ์ํ์ง๋ง ์น์ํ ๋ง๋ฆฌ์ค ์บ๋ฆญํฐ์ ๊ตฌ์กฐ๋ฌผ์ ์ด์ฉํด์ ๋ฌ๋ ๊ฒ์์ผ๋ก ๋ง๋ค์ด๋ณด์. ์ฑ๊ธํค DOM ๊ด๋ฆฌ๋๋ณด๊ธฐ// dom-manager.jsclass DomManager { static instance = null; constructor() { // ์์ฑ์ ํจ์๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์๋ก ์์ฑ๋ ์ธ์คํด์ค(this)๋ฅผ ๋ฐํํ์ง๋ง ๋ช
์์ ์ผ๋ก ๋ฐํ ..
[HTML] select, option ํ๊ทธ ์ฃผ์ ์์ฑ๊ณผ ํน์ง
[HTML] select, option ํ๊ทธ ์ฃผ์ ์์ฑ๊ณผ ํน์ง
2024.05.29Option ์์ฑ์ ํจ์ | MDN๐ก HTML ์ต์
ํ๊ทธ์ selected ์ดํธ๋ฆฌ๋ทฐํธ์ ์๋ฐ์คํฌ๋ฆฝํธ๋ก ์ ๊ทผํ๋ option.selected ์์ฑ(ํ๋กํผํฐ)์ ์๋ก ๋
๋ฆฝ์ ์ธ ๊ธฐ๋ฅ์ ๊ฐ์ง๋ค. ์ต์
ํ๊ทธ์ selected ์ดํธ๋ฆฌ๋ทฐํธ๋ ์ด๊ธฐ ์ ํ ์ํ๋ฅผ ๋ํ๋ด๊ณ , option.selected ์์ฑ์ ํ์ฌ ์ ํ ์ํ๋ฅผ ๋ฐ์ํ๊ณ ์ ์ดํ๋๋ฐ ์ฌ์ฉํ๋ค.// Option ์์ฑ์๋ฅผ ์ฌ์ฉํ๋ฉด document.createElement() ๋ณด๋ค ๋ ๊ฐ๊ฒฐํ๊ฒ ์์ฑํ ์ ์๋คnew Option(text?, value?, defaultSelected?, selected?) โผ๏ธ text : ์ต์
์์์ ํ์ํ ํ
์คํธ | ๊ธฐ๋ณธ๊ฐ "" ๋น ๋ฌธ์์ดtext์ ์ง์ ํ ๊ฐ์ option.textContent๋ก ์ค์ ๋๋ค.โผ๏ธ value : ์ต..
[Algorithm] ์์ด / ์กฐํฉ ๊ฐ๋
๊ณผ ์๊ณ ๋ฆฌ์ฆ ๊ตฌํ
[Algorithm] ์์ด / ์กฐํฉ ๊ฐ๋ ๊ณผ ์๊ณ ๋ฆฌ์ฆ ๊ตฌํ
2024.05.28์์ด Permutation๊ฐ๋
์์ด์ ์๋ก ๋ค๋ฅธ n๊ฐ ์์ ์ค์์ r๊ฐ๋ฅผ ์ ํํ์ฌ ์์๋๋ก ๋์ดํ๋ ๋ฐฉ๋ฒ์ ์๋ฏธํ๋ค. ์์ด์์ ์์๊ฐ ๊ฒฐ๊ณผ์ ์ํฅ์ ๋ฏธ์น๊ธฐ ๋๋ฌธ์ ์์๊ฐ ์ค์ํ๋ค. ๋์ผํ ์์๋ฅผ ์๋ก ๋ค๋ฅธ ์์๋ก ๋์ดํ๋ฉด, ๊ฐ๊ฐ์ ๋ณ๊ฐ์ ์์ด๋ก ๊ฐ์ฃผํ๋ค. ์๋ฅผ ๋ค์ด A, B, C์์ A, B ๋ ์์๋ฅผ ์ ํํ๋ ๊ฒฝ์ฐ AB์ BA๋ ์๋ก ๋ค๋ฅธ ์์ด์ด๋ค. A ์ ํ, ๋จ์ ๊ธ์ B, CB ์ ํ, ๋จ์ ๊ธ์ C (2์๋ฆฌ ์์ด์ด๋ฏ๋ก ๋ฌด์) → ABC ์ ํ, ๋จ์ ๊ธ์ B (2์๋ฆฌ ์์ด์ด๋ฏ๋ก ๋ฌด์) → ACB ์ ํ, ๋จ์ ๊ธ์ A, CA ์ ํ, ๋จ์ ๊ธ์ C (2์๋ฆฌ ์์ด์ด๋ฏ๋ก ๋ฌด์) → BAC ์ ํ, ๋จ์ ๊ธ์ A (2์๋ฆฌ ์์ด์ด๋ฏ๋ก ๋ฌด์) → BCC ์ ํ, ๋จ์ ๊ธ์ A, BA ์ ํ, ๋จ์ ๊ธ์ B (2์๋ฆฌ ์์ด..