[JavaScript] ์ดํ„ฐ๋Ÿฌ๋ธ”

์ดํ„ฐ๋ ˆ์ด์…˜ ํ”„๋กœํ† ์ฝœ(iteration protocol) ES6์—์„œ ๋„์ž…๋œ ์ดํ„ฐ๋ ˆ์ด์…˜ ํ”„๋กœํ† ์ฝœ์€ ์ˆœํšŒ ๊ฐ€๋Šฅํ•œ ๋ฐ์ดํ„ฐ ์ปฌ๋ ‰์…˜(์ž๋ฃŒ๊ตฌ์กฐ)์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ECMAScript ์‚ฌ์–‘์— ์ •์˜ํ•˜์—ฌ ๋ฏธ๋ฆฌ ์•ฝ์†ํ•œ ๊ทœ์น™์ž…๋‹ˆ๋‹ค. ES6 ์ด์ „์˜ ์ˆœํšŒ ๊ฐ€๋Šฅํ•œ ๋ฐ์ดํ„ฐ ์ปฌ๋ ‰์…˜(๋ฐฐ์—ด, ๋ฌธ์ž์—ด, ์œ ์‚ฌ ๋ฐฐ์—ด ๊ฐ์ฒด, DOM ์ปฌ๋ ‰์…˜ ๋“ฑ)์€ ํ†ต์ผ๋œ ๊ทœ์•ฝ ์—†์ด ๊ฐ์ž ๋‚˜๋ฆ„์˜ ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง€๊ณ  for ๋ฌธ, for ... in ๋ฌธ, forEach ๋ฉ”์„œ๋“œ ๋“ฑ ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ ์ˆœํšŒํ•  ์ˆ˜ ์žˆ์—ˆ์Œ ES6์—์„œ ์ˆœํšŒ ๊ฐ€๋Šฅํ•œ ๋ฐ์ดํ„ฐ ์ปฌ๋ ‰์…˜์„ ์ดํ„ฐ๋ ˆ์ด์…˜ ํ”„๋กœํ† ์ฝœ์„ ์ค€์ˆ˜ํ•˜๋Š” ์ดํ„ฐ๋Ÿฌ๋ธ”๋กœ ํ†ต์ผํ•˜์—ฌ for ... of ๋ฌธ, ์Šคํ”„๋ ˆ๋“œ ๋ฌธ๋ฒ•, ๋ฐฐ์—ด ๋””์ŠคํŠธ๋Ÿญ์ฒ˜๋ง ํ• ๋‹น์˜ ๋Œ€์ƒ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์ผ์›ํ™” ์ดํ„ฐ๋ ˆ์ด์…˜ ํ”„๋กœํ† ์ฝœ์—์„œ๋Š” ์ดํ„ฐ๋Ÿฌ๋ธ” ํ”„๋กœํ† ์ฝœ๊ณผ ์ดํ„ฐ๋ ˆ์ดํ„ฐ ํ”„๋กœํ† ์ฝœ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ..

[JavaScript] 7๋ฒˆ์งธ ๋ฐ์ดํ„ฐ ํƒ€์ž… Symbol

์‹ฌ๋ฒŒ์ด๋ž€? ์‹ฌ๋ฒŒ์€ ES6์—์„œ ๋„์ž…๋œ 7๋ฒˆ์งธ ๋ฐ์ดํ„ฐ ํƒ€์ž…์œผ๋กœ ๋ณ€๊ฒฝ ๋ถˆ๊ฐ€๋Šฅํ•œ ์›์‹œ ํƒ€์ž…์˜ ๊ฐ’์ž…๋‹ˆ๋‹ค. ์‹ฌ๋ฒŒ ๊ฐ’์€ ๋‹ค๋ฅธ ๊ฐ’๊ณผ ์ค‘๋ณต๋˜์ง€ ์•Š๋Š” ์œ ์ผ๋ฌด์ดํ•œ ๊ฐ’ ์ฃผ๋กœ ์ด๋ฆ„์˜ ์ถฉ๋Œ ์œ„ํ—˜์ด ์—†๋Š” ์œ ์ผํ•œ ํ”„๋กœํผํ‹ฐ ํ‚ค๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ ํ”„๋กœํผํ‹ฐ ํ‚ค๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ’์€ ๋นˆ ๋ฌด์ž์—ด์„ ํฌํ•จํ•œ ๋ชจ๋“  ๋ฌธ์ž์—ด ๋˜๋Š” ์‹ฌ๋ฒŒ ๊ฐ’ *ES6 ์ด์ „์—” 6๊ฐ€์ง€ ํƒ€์ž… (๋ฌธ์ž์—ด, ์ˆซ์ž, ๋ถˆ๋ฆฌ์–ธ, undefined, null, ๊ฐ์ฒด)์ด ์žˆ์—ˆ์Œ ์‹ฌ๋ฒŒ ๊ฐ’์˜ ์ƒ์„ฑ Symbol ํ•จ์ˆ˜ ์‹ฌ๋ฒŒ ๊ฐ’์€ Symbol ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. (๋‹ค๋ฅธ ์›์‹œ๊ฐ’์˜ ๊ฐ’์€ ๋ฆฌํ„ฐ๋Ÿด ํ‘œ๊ธฐ๋ฒ•์„ ํ†ตํ•ด ๊ฐ’์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Œ) ์ด๋•Œ ์ƒ์„ฑ๋œ ์‹ฌ๋ฒŒ ๊ฐ’์€ ์™ธ๋ถ€๋กœ ๋…ธ์ถœ๋˜์ง€ ์•Š์•„ ํ™•์ธํ•  ์ˆ˜ ์—†์œผ๋ฉฐ, ๋‹ค๋ฅธ ๊ฐ’๊ณผ ์ ˆ๋Œ€ ์ค‘๋ณต๋˜์ง€ ์•Š๋Š” ์œ ์ผ๋ฌด์ดํ•œ ๊ฐ’์ž…๋‹ˆ๋‹ค. // Symbol ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ์œ ์ผ๋ฌด์ดํ•œ..

[JavaScript] ๋ฐฑ์ค€ 13549๋ฒˆ - ์ˆจ๋ฐ”๊ผญ์งˆ 3

[๋ฌธ์ œ] [ํ’€์ด] ์ˆ˜๋นˆ์ด๊ฐ€ ๋™์ƒ์„ ์ฐพ์•„์„œ ์ด๋™ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์€ 2๊ฐ€์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. 1์ดˆ ๋™์•ˆ -1 ์นธ or +1 ์นธ ์ด๋™ 0์ดˆ ๋™์•ˆ ์ˆœ๊ฐ„์ด๋™ํ•˜์—ฌ X2์นธ ์ด๋™ ๋”ฐ๋ผ์„œ ๊ทœ์น™์ ์œผ๋กœ ์ด๋™ํ•˜๋Š” ๊ฒƒ์„ ๋ณด๊ณ  DP๋ฅผ ํ™œ์šฉํ•˜์—ฌ ํ’€์ดํ•˜์˜€์Šต๋‹ˆ๋‹ค. 1. ์ˆ˜๋นˆ์ด ์œ„์น˜ N๋ณด๋‹ค ์ž‘์€ ์นธ์œผ๋กœ๋Š” ์ˆœ๊ฐ„์ด๋™์ด ๋ถˆ๊ฐ€๋Šฅํ•ด์„œ ํ•ญ์ƒ 1์ดˆ๊ฐ€ ๊ฑธ๋ ค -1์นธ์”ฉ ์ด๋™ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. N๋ณด๋‹ค ์ž‘์€ ์œ„์น˜๋Š” 0์—์„œ 1์ดˆ์”ฉ ์‹œ๊ฐ„์„ ์ฆ๊ฐ€์‹œ์ผœ ๊ฐ dp ๋ฐฐ์—ด์˜ ์œ„์น˜ ์ธ๋ฑ์Šค์— ์‹œ๊ฐ„์„ ์ €์žฅ 2. ์ˆ˜๋นˆ์ด ์œ„์น˜ N์„ 0์ดˆ๋กœ ์‹œ์ž‘ํ•ด์„œ N๋ณด๋‹ค ํฐ ์นธ์œผ๋กœ ์ด๋™ํ•˜๋Š” ๊ฒฝ์šฐ๋Š” ๊ฑท๊ธฐ์™€ ์ˆœ๊ฐ„์ด๋™ 2๊ฐ€์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ํ˜„์žฌ ์œ„์น˜๋ฅผ X๋ผ๊ณ  ํ–ˆ์„๋•Œ, X์œ„์น˜๋กœ ์ด๋™ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ๋Š” 2๊ฐ€์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. X-1์—์„œ +1์นธ ๊ฑธ์–ด์˜จ ๊ฒฝ์šฐ : 1์ดˆ์˜ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆผ => dp[X-1] + 1 X/2 ์นธ..

Algorithm/Baekjoon 2022. 8. 5. 00:17
[JavaScript] ๋ฐฑ์ค€ 2457๋ฒˆ - ๊ณต์ฃผ๋‹˜์˜ ์ •์›

[๋ฌธ์ œ] https://www.acmicpc.net/problem/2457 2457๋ฒˆ: ๊ณต์ฃผ๋‹˜์˜ ์ •์› ์ฒซ์งธ ์ค„์—๋Š” ๊ฝƒ๋“ค์˜ ์ด ๊ฐœ์ˆ˜ N (1 ≤ N ≤ 100,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‹ค์Œ N๊ฐœ์˜ ์ค„์—๋Š” ๊ฐ ๊ฝƒ์ด ํ”ผ๋Š” ๋‚ ์งœ์™€ ์ง€๋Š” ๋‚ ์งœ๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ํ•˜๋‚˜์˜ ๋‚ ์งœ๋Š” ์›”๊ณผ ์ผ์„ ๋‚˜ํƒ€๋‚ด๋Š” ๋‘ ์ˆซ์ž๋กœ ํ‘œํ˜„๋œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด์„œ, www.acmicpc.net [ํ’€์ด] find()๋ฅผ ํ†ตํ•ด ๊ฐ€์žฅ ์ ๊ฒŒ ๊ฝƒ์„ ํ”ผ์šธ ์ˆ˜ ์žˆ๋Š” ์กฐํ•ฉ์„ ๊ตฌํ•ด์ฃผ์—ˆ๋Š”๋ฐ, find()๋Š” ์•„๋ž˜์™€ ๊ฐ™์€ ์ž‘์—…์„ ๋ฐ˜๋ณตํ•ฉ๋‹ˆ๋‹ค. ์•„์ง ๋ฐฉ๋ฌธํ•˜์ง€ ์•Š์€(ํ”ผ์šฐ์ง€ ์•Š์€) ๊ฝƒ ์ค‘์—์„œ ํ˜„์žฌ ์กฐํšŒ์ค‘์ธ ์‹œ์ž‘ ๋‚ ์งœ์™€ ๊ฐ™๊ฑฐ๋‚˜ ์ด์ „์— ํ”ผ์–ด์„œ ๊ฐ€์žฅ ๋Šฆ๊ฒŒ ์ง€๋Š” ๊ฝƒ์„ ์ฐพ์•„์„œ ํ•ด๋‹น ๊ฝƒ์˜ index๋ฅผ ์ €์žฅ ๋งŒ์•ฝ ๊ฝƒ์„ ์ฐพ์ง€ ๋ชปํ–ˆ๋‹ค๋ฉด ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜์ง€ ๋ชปํ•˜์—ฌ 0์„ ์ถœ๋ ฅํ•˜๊ณ  ์ข…๋ฃŒ ๋งŒ์•ฝ ์กฐํšŒ๋œ index์˜ ..

Algorithm/Baekjoon 2022. 8. 4. 00:51
[JavaScript] String

ํ‘œ์ค€ ๋นŒํŠธ์ธ ๊ฐ์ฒด์ธ String์€ ์›์‹œ ํƒ€์ž…์ธ ๋ฌธ์ž์—ด์„ ๋‹ค๋ฃฐ ๋•Œ ์œ ์šฉํ•œ ํ”„๋กœํผํ‹ฐ์™€ ๋ฉ”์„œ๋“œ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. String ์ƒ์„ฑ์ž ํ•จ์ˆ˜ String ๊ฐ์ฒด๋Š” ์ƒ์„ฑ์ž ํ•จ์ˆ˜ ๊ฐ์ฒด๋ผ new ์—ฐ์‚ฐ์ž์™€ ํ•จ๊ป˜ ํ˜ธ์ถœํ•˜์—ฌ String ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. String ๋ž˜ํผ ๊ฐ์ฒด๋Š” ๋ฐฐ์—ด๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ length ํ”„๋กœํผํ‹ฐ์™€ ์ธ๋ฑ์Šค๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ˆซ์ž๋ฅผ ํ”„๋กœํผํ‹ฐ ํ‚ค๋กœ, ๊ฐ ๋ฌธ์ž๋ฅผ ํ”„๋กœํผํ‹ฐ ๊ฐ’์œผ๋กœ ๊ฐ€์ง€๋ฏ€๋กœ ์œ ์‚ฌ ๋ฐฐ์—ด ๊ฐ์ฒด์ž…๋‹ˆ๋‹ค. // 1. ์ธ์ˆ˜ ์—†์ด ํ˜ธ์ถœ const strObj = new String(); console.log(strObj); // String {length: 0, [[PrimitiveValue]]: ""} // 2. ์ธ์ˆ˜๋กœ ๋ฌธ์ž์—ด ์ „๋‹ฌ const strObj = new String('Lee'); console..

[JavaScript] RegExp

์ •๊ทœ ํ‘œํ˜„์‹์ด๋ž€? ์ •๊ทœ ํ‘œํ˜„์‹(regular expression)์€ ์ผ์ •ํ•œ ํŒจํ„ด์„ ๊ฐ€์ง„ ๋ฌธ์ž์—ด์˜ ์ง‘ํ•ฉ์„ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ํ˜•์‹ ์–ธ์–ด(formal language)์ž…๋‹ˆ๋‹ค. ์ •๊ทœ ํ‘œํ˜„์‹์€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ๊ณ ์œ  ๋ฌธ๋ฒ•์ด ์•„๋‹ˆ๋ฉฐ, ๋Œ€๋ถ€๋ถ„์˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์™€ ์ฝ”๋“œ ์—๋””ํ„ฐ์— ๋‚ด์žฅ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ •๊ทœ ํ‘œํ˜„์‹์€ ๋ฌธ์ž์—ด์„ ๋Œ€์ƒ์œผ๋กœ ํŒจํ„ด ๋งค์นญ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ํŒจํ„ด ๋งค์นญ ๊ธฐ๋Šฅ์ด๋ž€, ํŠน์ • ํŒจํ„ด๊ณผ ์ผ์น˜ํ•˜๋Š” ๋ฌธ์ž์—ด์„ ๊ฒ€์ƒ‰ํ•˜๊ฑฐ๋‚˜ ์ถ”์ถœ ๋˜๋Š” ์น˜ํ™˜ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ๋งํ•ฉ๋‹ˆ๋‹ค. *์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ํŽ„์˜ ์ •๊ทœ ํ‘œํ˜„์‹ ๋ฌธ๋ฒ•์„ ES3๋ถ€ํ„ฐ ๋„์ž… ์˜ˆ๋ฅผ ๋“ค์–ด, ํšŒ์›๊ฐ€์ž… ํ™”๋ฉด์—์„œ ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ์ž…๋ ฅ๋ฐ›์€ ํœด๋Œ€ํฐ ์ „ํ™”๋ฒˆํ˜ธ๊ฐ€ ์œ ํšจํ•œ ๋ฒˆํ˜ธ์ธ์ง€ "์ˆซ์ž 3๊ฐœ + '-' + ์ˆซ์ž 4๊ฐœ + '-' + ์ˆซ์ž 4๊ฐœ" ๋ผ๋Š” ์ผ์ •ํ•œ ํŒจํ„ด์„ ์ •๊ทœ ํ‘œํ˜„์‹์œผ๋กœ ์ •์˜ํ•˜๊ณ  ์‚ฌ์šฉ..

[JavaScript] Date

ํ‘œ์ค€ ๋นŒํŠธ์ธ ๊ฐ์ฒด์ธ Date๋Š” ๋‚ ์งœ์™€ ์‹œ๊ฐ„(์—ฐ, ์›”, ์ผ, ์‹œ, ๋ถ„, ์ดˆ, ๋ฐ€๋ฆฌ์ดˆ)์„ ์œ„ํ•œ ๋ฉ”์„œ๋“œ๋ฅผ ์ œ๊ณตํ•˜๋Š” ๋นŒํŠธ์ธ ๊ฐ์ฒด์ด๋ฉด์„œ ์ƒ์„ฑ์ž ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค. ํ˜„์žฌ ๋‚ ์งœ์™€ ์‹œ๊ฐ„์€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ๊ฐ€ ์‹คํ–‰๋œ ์‹œ์Šคํ…œ์˜ ์‹œ๊ณ„์— ์˜ํ•ด ๊ฒฐ์ •๋ฉ๋‹ˆ๋‹ค. UTC(ํ˜‘์ • ์„ธ๊ณ„์‹œ) : ๊ตญ์ œ ํ‘œ์ค€์‹œ๋กœ GMT(๊ทธ๋ฆฌ๋‹ˆ์น˜ ํ‰๊ท ์‹œ)๋กœ ๋ถˆ๋ฆฌ๊ธฐ๋„ ํ•จ KST(ํ•œ๊ตญ ํ‘œ์ค€์‹œ) : UTC์— 9์‹œ๊ฐ„์„ ๋”ํ•œ ์‹œ๊ฐ„์œผ๋กœ KST๋Š” UTC๋ณด๋‹ค 9์‹œ๊ฐ„์ด ๋น ๋ฆ„ Data ์ƒ์„ฑ์ž ํ•จ์ˆ˜ Date ์ƒ์„ฑ์ž ํ•จ์ˆ˜๋กœ ์ƒ์„ฑํ•œ Data ๊ฐ์ฒด๋Š” ๋‚ด๋ถ€์ ์œผ๋กœ ๋‚ ์งœ์™€ ์‹œ๊ฐ„์„ ๋‚˜ํƒ€๋‚ด๋Š” ์ •์ˆ˜๊ฐ’์„ ๊ฐ€์ง‘๋‹ˆ๋‹ค. ์ด ๊ฐ’์€ 1970๋…„ 1์›” 1์ผ 00:00:00(UTC)์„ ๊ธฐ์ ์œผ๋กœ Date ๊ฐ์ฒด๊ฐ€ ๋‚˜ํƒ€๋‚ด๋Š” ๋‚ ์งœ์™€ ์‹œ๊ฐ„๊นŒ์ง€์˜ ๋ฐ€๋ฆฌ์ดˆ๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. 1970๋…„ 1์›” 1์ผ 0์‹œ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” Data ๊ฐ์ฒด๋Š” ๋‚ด๋ถ€์ ์œผ๋กœ..