[JavaScript/section 3] 05 - ๋ฌธ์ž์—ด ์••์ถ•
ยท
Algorithm/์ธํ”„๋Ÿฐ(inflearn)
๐Ÿ“Œ ๋ฌธ์ œ ์•ŒํŒŒ๋ฒณ ๋Œ€๋ฌธ์ž๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฌธ์ž์—ด์„ ์ž…๋ ฅ๋ฐ›์•„ ๊ฐ™์€ ๋ฌธ์ž๊ฐ€ ์—ฐ์†์œผ๋กœ ๋ฐ˜๋ณต๋˜๋Š” ๊ฒฝ์šฐ ๋ฐ˜๋ณต๋˜๋Š” ๋ฌธ์ž ๋ฐ”๋กœ ์˜ค๋ฅธ์ชฝ์— ๋ฐ˜๋ณต ํšŸ์ˆ˜๋ฅผ ํ‘œ๊ธฐํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ๋ฌธ์ž์—ด์„ ์••์ถ•ํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค. ๋‹จ, ๋ฐ˜๋ณต ํšŸ์ˆ˜๊ฐ€ 1์ธ ๊ฒฝ์šฐ ์ƒ๋žตํ•œ๋‹ค. ์ž…๋ ฅ์˜ˆ์ œ ์ถœ๋ ฅ์˜ˆ์ œ KKHSSSSSSSE K2HS7E ๐Ÿ“ ํ’€์ด ๐Ÿง‘๐Ÿป‍๐Ÿ’ป ๋‚˜์˜ ํ’€์ด ๋ฐฉ๋ฒ• ๋ณ€์ˆ˜ ์ •๋ณด - s[i](ํ˜„์žฌ ๋ฌธ์ž), c(์ด์ „ ๋ฌธ์ž), cnt(๋ฐ˜๋ณต ํšŸ์ˆ˜) cnt ๊ฐ’์„ 1๋กœ, c์˜ ๊ฐ’์„ ๋ฌธ์ž์—ด์˜ ์ฒซ ๋ฒˆ์งธ ๋ฌธ์ž๋กœ ์ดˆ๊ธฐํ™”ํ•œ๋‹ค. ํ˜„์žฌ ๋ฌธ์ž๊ฐ€ ์ด์ „ ๋ฌธ์ž์™€ ๊ฐ™์€ ๊ฒฝ์šฐ ๊ฐ™์€ ๋ฌธ์ž๊ฐ€ ์—ฐ์†์œผ๋กœ ๋ฐ˜๋ณต๋˜๋Š” ๊ฒƒ์ด๋ฏ€๋กœ cnt++์„ ํ•œ๋‹ค. ํ˜„์žฌ ๋ฌธ์ž๊ฐ€ ์ด์ „ ๋ฌธ์ž์™€ ๋‹ค๋ฅธ ๊ฒฝ์šฐ cnt ๊ฐ’์ด 1์ธ์ง€ ์•„๋‹Œ์ง€ ๊ฒ€์‚ฌํ•œ ํ›„ answer ๋ณ€์ˆ˜์— ๊ฐ’์„ ๋ˆ„์ ํ•œ๋‹ค. ๋‹ค์Œ ๊ฒ€์‚ฌ๋ฅผ ์œ„ํ•ด cnt ๊ฐ’์„ 1๋กœ c์˜ ๊ฐ’์„ s[i]๋กœ ์ดˆ๊ธฐํ™”..
[JavaScript/section 3] 04 - ๊ฐ€์žฅ ์งง์€ ๋ฌธ์ž๊ฑฐ๋ฆฌ
ยท
Algorithm/์ธํ”„๋Ÿฐ(inflearn)
๐Ÿ“Œ ๋ฌธ์ œ ํ•œ ๊ฐœ์˜ ๋ฌธ์ž์—ด s์™€ ๋ฌธ์ž t๊ฐ€ ์ฃผ์–ด์ง€๋ฉด ๋ฌธ์ž์—ด s์˜ ๊ฐ ๋ฌธ์ž๊ฐ€ ๋ฌธ์ž t์™€ ๋–จ์–ด์ง„ ์ตœ์†Œ๊ฑฐ๋ฆฌ๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค. ๐Ÿ“ ํ’€์ด ๐Ÿง‘๐Ÿป‍๐Ÿ’ป ๋‚˜์˜ ํ’€์ด ๋ฐฉ๋ฒ• ๋ฌธ์ž์—ด์„ ์ฐจ๋ก€๋Œ€๋กœ ๋Œ๋ฉด์„œ slice() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ ๋ฌธ์ž๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์™ผ์ชฝ, ์˜ค๋ฅธ์ชฝ์„ ๋‚˜๋ˆˆ๋‹ค. ์™ผ์ชฝ, ์˜ค๋ฅธ์ชฝ ๊ฐ๊ฐ lastIndexOf(), indexOf() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฌธ์ž t์™€ ๋–จ์–ด์ง„ ๊ฑฐ๋ฆฌ๋ฅผ ์ธก์ •ํ•œ๋‹ค. Math.min() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ตœ์†Œ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ•œ ํ›„ ๋ฐฐ์—ด์— ์ €์žฅํ•œ๋‹ค. function solution(s, t) { const answer = []; for (let i = 0; i < s.length; i++) { if (s[i] === t) { answer.push(0); } else { // ๊ฐ ๋ฌธ์ž๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์™ผ์ชฝ, ์˜ค๋ฅธ์ชฝ..
[JavaScript/section 3] 03 - ์ˆซ์ž๋งŒ ์ถ”์ถœ
ยท
Algorithm/์ธํ”„๋Ÿฐ(inflearn)
๐Ÿ“Œ ๋ฌธ์ œ ๋ฌธ์ž์™€ ์ˆซ์ž๊ฐ€ ์„ž์—ฌ์žˆ๋Š” ๋ฌธ์ž์—ด์ด ์ฃผ์–ด์ง€๋ฉด ๊ทธ ์ค‘ ์ˆซ์ž๋งŒ ์ถ”์ถœํ•˜์—ฌ ๊ทธ ์ˆœ์„œ๋Œ€๋กœ ์ž์—ฐ์ˆ˜๋ฅผ ๋งŒ๋“ ๋‹ค. ๋งŒ์•ฝ "tge0a1h205er"์—์„œ ์ˆซ์ž๋งŒ ์ถ”์ถœํ•˜๋ฉด 0, 1, 2, 0, 5์ด๊ณ  ์ด๊ฒƒ์„ ์ž์—ฐ์ˆ˜๋ฅผ ๋งŒ๋“ค๋ฉด 1205์ด ๋œ๋‹ค. ๐Ÿ“ ํ’€์ด ๐Ÿง‘๐Ÿป‍๐Ÿ’ป ๋‚˜์˜ ํ’€์ด ๋ฐฉ๋ฒ• ๋ฌธ์ž์—ด์˜ ๊ฐ ๋ฌธ์ž๋“ค์„ ๋Œ๋ฉด์„œ charCodeAt() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์•„์Šคํ‚ค ์ฝ”๋“œ๊ฐ€ 65("A") ๋ฏธ๋งŒ์ธ ๊ฒฝ์šฐ์—๋งŒ answer ๋ณ€์ˆ˜์— ๋ˆ„์ ์‹œํ‚จ๋‹ค. // ๋‚˜์˜ ํ’€์ด ๋ฐฉ๋ฒ• function solution(str) { let answer = ''; for (let x of str) { if (x.charCodeAt() < 65) answer += x; } return parseInt(answer); } let str = 'g0en2T0s8eSoft'; c..
[JavaScript/section 3] 02 - ์œ ํšจํ•œ ํŒฐ๋ฆฐ๋“œ๋กฌ
ยท
Algorithm/์ธํ”„๋Ÿฐ(inflearn)
๐Ÿ“Œ ๋ฌธ์ œ ์•ž์—์„œ ์ฝ์„ ๋•Œ๋‚˜ ๋’ค์—์„œ ์ฝ์„ ๋•Œ๋‚˜ ๊ฐ™์€ ๋ฌธ์ž์—ด์„ ํŒฐ๋ฆฐ๋“œ๋กฌ์ด๋ผ๊ณ  ํ•œ๋‹ค. ๋ฌธ์ž์—ด์ด ์ž…๋ ฅ๋˜๋ฉด ํ•ด๋‹น ๋ฌธ์ž์—ด์ด ํŒฐ๋ฆฐ๋“œ๋กฌ์ด๋ฉด "YES", ์•„๋‹ˆ๋ฉด "NO"๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค. ๋‹จ, ํšŒ๋ฌธ์„ ๊ฒ€์‚ฌํ•  ๋•Œ ์•ŒํŒŒ๋ฒณ๋งŒ ๊ฐ€์ง€๊ณ  ํšŒ๋ฌธ์„ ๊ฒ€์‚ฌํ•˜๋ฉฐ, ๋Œ€์†Œ๋ฌธ์ž๋ฅผ ๊ตฌ๋ถ„ํ•˜์ง€ ์•Š๋Š”๋‹ค. ์•ŒํŒŒ๋ฒณ ์ด์™ธ์˜ ๋ฌธ์ž๋“ค์€ ๋ฌด์‹œํ•œ๋‹ค. ๐Ÿง‘๐Ÿป‍๐Ÿ’ป ๋‚˜์˜ ํ’€์ด ๋ฐฉ๋ฒ• toUpperCase() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ž…๋ ฅ๋œ ๋ฌธ์ž์—ด์„ ๋Œ€๋ฌธ์ž๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค. ๊ฐ ๋ฌธ์ž๋“ค์„ ํ•˜๋‚˜์”ฉ ๋Œ๋ฉด์„œ charCodeAt() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์•ŒํŒŒ๋ฒณ์— ํ•ด๋‹นํ•˜๋Š” ๋ฌธ์ž๋งŒ str ๋ณ€์ˆ˜์— ๋ˆ„์ ์‹œ์ผœ์ค€๋‹ค. ๐Ÿ‘จ๐Ÿผ‍๐Ÿซ ๊ฐ•์‚ฌ๋‹˜ ํ’€์ด ๋ฐฉ๋ฒ• [^]: ๋ถ€์ • ๋ฌธ์ž ํด๋ž˜์Šค. ๋Œ€๊ด„ํ˜ธ ์•ˆ์— ํฌํ•จ๋˜์ง€ ์•Š์€ ๋ฌธ์ž๋“ค๋กœ ๋งค์น˜. ^(์บ๋Ÿฟ): ์ž…๋ ฅ์˜ ์‹œ์ž‘๊ณผ ๋งค์น˜. toUpperCase() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ž…๋ ฅ๋œ ๋ฌธ์ž์—ด์„ ..
[JavaScript/section 3] 01 - ํšŒ๋ฌธ ๋ฌธ์ž์—ด
ยท
Algorithm/์ธํ”„๋Ÿฐ(inflearn)
๐Ÿ“Œ ๋ฌธ์ œ ์•ž์—์„œ ์ฝ์„ ๋•Œ๋‚˜ ๋’ค์—์„œ ์ฝ์„ ๋•Œ๋‚˜ ๊ฐ™์€ ๋ฌธ์ž์—ด์„ ํšŒ๋ฌธ ๋ฌธ์ž์—ด์ด๋ผ๊ณ  ํ•œ๋‹ค. ๋ฌธ์ž์—ด์ด ์ž…๋ ฅ๋˜๊ณ  ํ•ด๋‹น ๋ฌธ์ž์—ด์ด ํšŒ๋ฌธ ๋ฌธ์ž์—ด์ด๋ฉด "YES", ํšŒ๋ฌธ ๋ฌธ์ž์—ด์ด ์•„๋‹ˆ๋ฉด "NO"๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค. ๋‹จ, ํšŒ๋ฌธ์„ ๊ฒ€์‚ฌํ•  ๋•Œ ๋Œ€์†Œ๋ฌธ์ž๋ฅผ ๊ตฌ๋ถ„ํ•˜์ง€ ์•Š๋Š”๋‹ค. ๐Ÿ‘จ๐Ÿป‍๐Ÿ’ป ๋‚˜์˜ ํ’€์ด ๋ฐฉ๋ฒ• ๋ฌธ์ž์—ด์„ split() ๋ฉ”์„œ๋“œ๋ฅผ ์ด์šฉํ•ด ๋ฐฐ์—ด๋กœ ๋งŒ๋“ค์–ด์ค€ ํ›„, reverse() ๋ฉ”์„œ๋“œ๋ฅผ ์ด์šฉํ•ด ๋’ค์ง‘์–ด ์ค€๋‹ค. join() ๋ฉ”์„œ๋“œ๋ฅผ ์ด์šฉํ•ด ๋ฐฐ์—ด์„ ๋‹ค์‹œ ๋ฌธ์ž์—ด๋กœ ๋งŒ๋“ค์–ด์ค€ ํ›„, ๊ธฐ์กด ๋ฌธ์ž์—ด๊ณผ ๋น„๊ตํ•ด ์ผ์น˜ํ•œ๋‹ค๋ฉด ํšŒ๋ฌธ ๋ฌธ์ž์—ด์ด๋ฏ€๋กœ ''YES"๋ฅผ ์ถœ๋ ฅํ•ด์ฃผ๊ณ , ์ผ์น˜ํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด "NO"๋ฅผ ์ถœ๋ ฅํ•ด์ค€๋‹ค. ๐Ÿ‘จ๐Ÿป‍๐Ÿซ ๊ฐ•์‚ฌ๋‹˜ ํ’€์ด ๋ฐฉ๋ฒ• ๋ฌธ์ž์—ด ๊ธธ์ด์˜ ์ ˆ๋ฐ˜๋งŒํผ for ๋ฐ˜๋ณต๋ฌธ์„ ์ด์šฉํ•ด ์ง์ ‘ ๋น„๊ตํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ๊ฐ€์šด๋ฐ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์–‘์ชฝ์„ ๋น„๊ตํ•˜๋ฉด์„œ ๊ฐ๊ฐ์˜ ๋ฌธ์ž๊ฐ€ ..
[JavaScript/section 2] 07 - ๋ด‰์šฐ๋ฆฌ
ยท
Algorithm/์ธํ”„๋Ÿฐ(inflearn)
๐Ÿ“Œ ๋ฌธ์ œ ์ง€๋„ ์ •๋ณด๊ฐ€ N*N ๊ฒฉ์žํŒ์— ์ฃผ์–ด์ง„๋‹ค. ๊ฐ ๊ฒฉ์ž์—๋Š” ๊ทธ ์ง€์—ญ์˜ ๋†’์ด๊ฐ€ ์“ฐ์—ฌ์žˆ๋‹ค. ๊ฐ ๊ฒฉ์žํŒ์˜ ์ˆซ์ž ์ค‘ ์ž์‹ ์˜ ์ƒํ•˜์ขŒ์šฐ ์ˆซ์ž๋ณด๋‹ค ํฐ ์ˆซ์ž๋Š” ๋ด‰์šฐ๋ฆฌ ์ง€์—ญ์ด๋‹ค. ๋ด‰์šฐ๋ฆฌ ์ง€์—ญ์ด ๋ช‡ ๊ฐœ ์žˆ๋Š”์ง€ ์•Œ์•„๋‚ด๋Š” ๋ฌธ์ œ์ด๋‹ค. ๊ฒฉ์ž์˜ ๊ฐ€์žฅ์ž๋ฆฌ๋Š” 0์œผ๋กœ ์ดˆ๊ธฐํ™” ๋˜์—ˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•œ๋‹ค. ๋งŒ์•ฝ N = 5์ด๊ณ , ๊ฒฉ์žํŒ์˜ ์ˆซ์ž๊ฐ€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค๋ฉด ๋ด‰์šฐ๋ฆฌ์˜ ๊ฐœ์ˆ˜๋Š” 10๊ฐœ์ด๋‹ค. 0 0 0 0 0 0 0 0 5 3 7 2 3 0 0 3 7 1 6 1 0 0 7 2 5 3 4 0 0 4 3 6 4 1 0 0 8 7 3 5 2 0 0 0 0 0 0 0 0 ์ƒํ•˜์ขŒ์šฐ๋ฅผ ํŒ๋ณ„ํ•  ๋•Œ๋Š” dx = [-1, 0 ,1, 0], dy = [0, 1, 0, -1]๊ณผ ๊ฐ™์ด ๋ฐฉํ–ฅ ๋ฒกํ„ฐ๋ฅผ ๋ฏธ๋ฆฌ ์„ค์ •ํ•ด์ฃผ๋ฉด ์ข‹๋‹ค. ๐Ÿ‘จ๐Ÿป‍๐Ÿ’ป ๋‚˜์˜ ํ’€์ด ๋ฐฉ๋ฒ• num์„ 0์œผ๋กœ ์ดˆ๊ธฐํ™”ํ•œ ํ›„ ๊ฒฉ..
[JavaScript/section 2] 06 - ๊ฒฉ์žํŒ ์ตœ๋Œ€ํ•ฉ
ยท
Algorithm/์ธํ”„๋Ÿฐ(inflearn)
๐Ÿ“Œ ๋ฌธ์ œ 5 * 5 ๊ฒฉ์žํŒ์— ์•„๋ž˜์™€ ๊ฐ™์ด ์ˆซ์ž๊ฐ€ ์ ํ˜€์žˆ๋‹ค. N * N์˜ ๊ฒฉ์žํŒ์ด ์ฃผ์–ด์ง€๋ฉด ๊ฐ ํ–‰์˜ ํ•ฉ, ๊ฐ ์—ด์˜ ํ•ฉ, ๋‘ ๋Œ€๊ฐ์„ ์˜ ํ•ฉ ์ค‘ ๊ฐ€์žฅ ํฐ ํ•ฉ์„ ์ถœ๋ ฅํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค. 1๏ธโƒฃ ์ด์ค‘ for๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ ํ–‰์˜ ํ•ฉ, ๊ฐ ์—ด์˜ ํ•ฉ์„ ๊ตฌํ•˜๊ณ , answer ๋ณ€์ˆ˜์˜ ๊ฐ’๊ณผ ๋น„๊ตํ•˜์—ฌ ๊ฐ€์žฅ ํฐ ๊ฐ’์„ answer ๋ณ€์ˆ˜์— ์žฌํ• ๋‹นํ•œ๋‹ค. 2๏ธโƒฃ ๋Œ€๊ฐ์„ ์€ ์ขŒ์ธก ์ƒ๋‹จ์—์„œ ์šฐ์ธก ํ•˜๋‹จ ๋ฐฉํ–ฅ์˜ ๋Œ€๊ฐ์„  arr[i][i]๊ณผ ์šฐ์ธก ์ƒ๋‹จ์—์„œ ์ขŒ์ธก ํ•˜๋‹จ ๋ฐฉํ–ฅ์˜ ๋Œ€๊ฐ์„  arr[i][n - (i+1)]์„ ๊ตฌํ•˜๊ณ , ์ตœ์ข…์ ์œผ๋กœ answer ๋ณ€์ˆ˜์˜ ๊ฐ’๊ณผ ๋น„๊ตํ•˜์—ฌ ๊ฐ€์žฅ ํฐ ํ•ฉ์„ ์ฐพ๋Š”๋‹ค. ๐Ÿ“ ํ’€์ด function solution(arr) { let answer = Number.MIN_SAFE_INTEGER; const n = arr.length; le..
[JavaScript/section 2] 05 - ๋“ฑ์ˆ˜ ๊ตฌํ•˜๊ธฐ
ยท
Algorithm/์ธํ”„๋Ÿฐ(inflearn)
๐Ÿ“Œ ๋ฌธ์ œ N๋ช…์˜ ํ•™์ƒ์˜ ๊ตญ์–ด์ ์ˆ˜๊ฐ€ ์ž…๋ ฅ๋˜๋ฉด ๊ฐ ํ•™์ƒ์˜ ๋“ฑ์ˆ˜๋ฅผ ์ž…๋ ฅ๋œ ์ˆœ์„œ๋Œ€๋กœ ์ถœ๋ ฅํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค. ๊ฐ ํ•™์ƒ์˜ ๋“ฑ์ˆ˜๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด ์ž…๋ ฅ๋œ ๋ฐฐ์—ด์˜ ๊ธธ์ด(n)์™€ ๊ฐ™์€ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์„ ์ƒ์„ฑํ•˜๊ณ  ๋ชจ๋“  ์š”์†Œ๋ฅผ 1๋กœ ์ดˆ๊ธฐํ™”ํ•œ๋‹ค. ์ด์ค‘ for๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐฐ์—ด ๊ฐ๊ฐ์˜ ์š”์†Œ๋“ค์ด ์ž๊ธฐ ์ž์‹ ์„ ์ œ์™ธํ•œ ๋ฐฐ์—ด์— ๋“ค์–ด์žˆ๋Š” ๋ชจ๋“  ์š”์†Œ์™€ ๋น„๊ตํ•˜๋„๋ก ํ•œ๋‹ค. ์ž์‹ ๋ณด๋‹ค ํฐ ์š”์†Œ๊ฐ€ ์กด์žฌํ•˜๋ฉด ์ƒˆ๋กœ์šด ๋ฐฐ์—ด ํ•ด๋‹น(๊ธฐ์ค€์ด ๋˜๋Š”, ๋ณ€์ˆ˜ i) ์ธ๋ฐ์Šค์˜ ๊ฐ’์— + 1 ํ•ด์ฃผ๋ฉด ๋œ๋‹ค. ๐Ÿ“ ํ’€์ด function solution(arr) { const n = arr.length; const answer = new Array(n).fill(1); // const answer = Array.from({ length: n }, () => 1); for (let i =..
_์„ฑํ˜ธ_
๐ŸŒฑ ์„ฑํ˜ธ ๋ธ”๋กœ๊ทธ