๐Ÿ‘ฉ‍๐Ÿ’ป/JavaScript 22

[Programmers] JavaScript์—์„œ ์‹œ์ € ์•”ํ˜ธ๋ฌธ ๋งŒ๋“ค๊ธฐ (charCodeAt, fromCharCode())

programmers.co.kr/learn/challenges ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต ๊ธฐ์ดˆ๋ถ€ํ„ฐ ์ฐจ๊ทผ์ฐจ๊ทผ, ์ง์ ‘ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด ๋ณด์„ธ์š”. programmers.co.kr ์•ŒํŒŒ๋ฒณ์„ ์ผ์ •ํ•œ ๊ฑฐ๋ฆฌ๋งŒํผ ๋ฐ€์–ด์„œ ์ƒˆ๋กœ์šด ๋ฌธ์ž๋ฅผ ๋งŒ๋“œ๋Š” ์‹œ์ € ์•”ํ˜ธ. ์•”ํ˜ธํ™” ํ•ด์•ผ ํ•  ๋ฌธ์ž์—ด์ด ์ฃผ์–ด์ง€๊ณ , ๋ฐ€์–ด์•ผ ํ•˜๋Š” ๊ฑฐ๋ฆฌ n์ด ์ฃผ์–ด์งˆ ๋•Œ ๋ณ€ํ™˜๋œ ์‹œ์ € ์•”ํ˜ธ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค. (๋‹จ, ๊ณต๋ฐฑ์€ ์•„๋ฌด๋ฆฌ ๋ฐ€์–ด๋„ ๊ณต๋ฐฑ์ด๋‹ค. ๋ฌธ์ž์—ด์€ ์•ŒํŒŒ๋ฒณ ์†Œ๋ฌธ์ž, ๋Œ€๋ฌธ์ž, ๊ณต๋ฐฑ์œผ๋กœ๋งŒ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค.) ์ฝ”๋“œ ๋ฌธ์ž์—ด์€ iterableํ•œ ๊ฐ์ฒด์ด๋ฏ€๋กœ for of ๋ฌธ๋ฒ•์œผ๋กœ ๋ฌธ์ž ํ•˜๋‚˜ ํ•˜๋‚˜๋ฅผ ๊ฒ€์‚ฌํ–ˆ๋‹ค. ๊ณต๋ฐฑ์ผ ๊ฒฝ์šฐ์—๋Š” ๋นˆ ๊ณต๋ฐฑ์„ ๋ฐ˜ํ™˜๋˜์–ด์•ผ ํ•  ์ƒˆ๋กœ์šด ๋ฌธ์ž์—ด์ธ newStr์— ๋”ํ•ด์ฃผ๊ณ , continue๋กœ ๋‹ค์Œ ๋ฐ˜๋ณต๋ฌธ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ง„ํ–‰ํ•œ๋‹ค. String.prototype.charCodeAt..

[ES2020] Nullish Coalescing Operator (null ๋ณ‘ํ•ฉ ์—ฐ์‚ฐ์ž ??)

๊ธฐ์กด || ์—ฐ์‚ฐ์ž์˜ ํ•œ๊ณ„์  function isEnabled(options) { return console.log(options.enabled || true) } isEnabled({}); // true isEnabled({enabled: null}); // true isEnabled({enabled: false}); // true ์†์„ฑ ๊ฐ’์ธ false๋ฅผ ์ธ์‹ํ•˜์ง€ ๋ชปํ•˜๊ณ  true๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ณ  ์žˆ๋‹ค. || ์—ฐ์‚ฐ์ž๋Š” ์ขŒํ•ญ์ด falsyํ•œ ๊ฒฝ์šฐ ๋ฌด์กฐ๊ฑด ์šฐํ•ญ์„ ํƒํ•œ๋‹ค. ํ•˜์ง€๋งŒ, ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ๋Š” null, undefined๋ฟ ์•„๋‹ˆ๋ผ false, 0, "", NaN ๋“ฑ ๋‹ค์–‘ํ•œ ๊ฐ’์„ falsyํ•˜๊ฒŒ ์—ฌ๊ธด๋‹ค. ๋˜ํ•œ || ์—ฐ์‚ฐ์ž๋Š” ์ฒซ ๋ฒˆ์งธ truthy ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค๋ฉด(์กด์žฌํ•  ๊ฒฝ์šฐ), ??๋Š” ์ฒซ ๋ฒˆ์งธ defined value..

[Programmers] ์†Œ์ˆ˜ ์ฐพ๊ธฐ, ์—๋ผํ† ์Šคํ…Œ๋„ค์Šค์˜ ์ฒด

๋ฌธ์ œ 1๋ถ€ํ„ฐ ์ž…๋ ฅ๋ฐ›์€ ์ˆซ์ž n ์‚ฌ์ด์— ์žˆ๋Š” ์†Œ์ˆ˜์˜ ๊ฐœ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜, solution์„ ๋งŒ๋“ค์–ด ๋ณด์„ธ์š”. ์†Œ์ˆ˜๋Š” 1๊ณผ ์ž๊ธฐ ์ž์‹ ์œผ๋กœ๋งŒ ๋‚˜๋ˆ„์–ด์ง€๋Š” ์ˆ˜๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. (1์€ ์†Œ์ˆ˜๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค.) ์ œํ•œ ์กฐ๊ฑด n์€ 2์ด์ƒ 1000000์ดํ•˜์˜ ์ž์—ฐ์ˆ˜์ž…๋‹ˆ๋‹ค. ์ฝ”๋“œ ํ’€์ด ์ฃผ์–ด์ง„ ์ˆซ์ž๊ฐ€ ๋ฐฐ์—ด ํ˜•ํƒœ๊ฐ€ ์•„๋‹ˆ๋ฏ€๋กœ, ์ฒซ ๋ฒˆ์งธ๋กœ ๋ฐ˜๋ณต๋ฌธ์„ ๋“ฑ์žฅ์‹œ์ผœ์„œ ์†Œ์ˆ˜๋ฅผ ์ฐพ๊ธฐ ์œ„ํ•œ ์ˆซ์ž ์ง‘ํ•ฉ์„ ๋งŒ๋“ค์–ด์ค€๋‹ค. 1์€ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ์ œ์™ธ๊ฐ€ ๋˜๋‹ˆ 2๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด n๊นŒ์ง€ ๋ฐฐ์—ด์— ๋„ฃ์–ด์ค€๋‹ค. ์ด๋•Œ arr[0], arr[1]์€ ์ฑ„์›Œ์ง€์ง€ ์•Š์•„์„œ undefined์ด ๋  ๊ฒƒ์ด์ง€๋งŒ, ๊ตฌํ•˜๋Š” ๊ฒƒ์€ ์†Œ์ˆ˜์˜ ๊ฐœ์ˆ˜์ด๋ฏ€๋กœ filter ๋ฉ”์„œ๋“œ๋ฅผ ํ†ตํ•ด์„œ ์ง€์›Œ๋‚˜๊ฐˆ ์ˆ˜ ์žˆ๋‹ค. ๋งŒ๋“ค์–ด์ง„ ๋ฐฐ์—ด์„ ์ˆœํšŒํ•˜๋ฉด์„œ ์†Œ์ˆ˜๊ฐ€ ์•„๋‹Œ ์ˆ˜๋“ค์„ ์ œ๊ฑฐํ•ด์ค„ ๋ชฉ์ ์œผ๋กœ 0์„ ๋„ฃ์–ด์ค€๋‹ค. i = 2์ผ ๋•Œ, i๋ฒˆ์งธ์— ์œ„์น˜..

[Programmers] JavaScript์—์„œ ๋ฌธ์ž์—ด ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜๊ธฐ

๋ฌธ์ œ ๋ฌธ์ž์—ด s์— ๋‚˜ํƒ€๋‚˜๋Š” ๋ฌธ์ž๋ฅผ ํฐ๊ฒƒ๋ถ€ํ„ฐ ์ž‘์€ ์ˆœ์œผ๋กœ ์ •๋ ฌํ•ด ์ƒˆ๋กœ์šด ๋ฌธ์ž์—ด์„ ๋ฆฌํ„ดํ•˜๋Š” ํ•จ์ˆ˜, solution์„ ์™„์„ฑํ•ด์ฃผ์„ธ์š”. s๋Š” ์˜๋ฌธ ๋Œ€์†Œ๋ฌธ์ž๋กœ๋งŒ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์œผ๋ฉฐ, ๋Œ€๋ฌธ์ž๋Š” ์†Œ๋ฌธ์ž๋ณด๋‹ค ์ž‘์€ ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผํ•ฉ๋‹ˆ๋‹ค. ์ œํ•œ ์‚ฌํ•ญ str์€ ๊ธธ์ด 1 ์ด์ƒ์ธ ๋ฌธ์ž์—ด์ž…๋‹ˆ๋‹ค. ์ž…์ถœ๋ ฅ ์˜ˆ ZbcdefggfedcbZ ์ฝ”๋“œ ํ’€์ด JavaScript์˜ sort() ๋ฉ”์†Œ๋“œ๋Š” ๋ฌธ์ž์—ด์˜ ์œ ๋‹ˆ์ฝ”๋“œ ์ฝ”๋“œ ํฌ์ธํŠธ๋ฅผ ๋”ฐ๋ฅธ๋‹ค. ์œ ๋‹ˆ์ฝ”๋“œ์—์„œ๋Š” ๋Œ€๋ฌธ์ž๊ฐ€ ์†Œ๋ฌธ์ž๋ณด๋‹ค ํฌ๋ฏ€๋กœ, ์ฃผ์–ด์ง„ ๋ฌธ์ž์—ด์— sort() ๋ฉ”์†Œ๋“œ๋ฅผ ์ ์šฉํ•˜๋ฉด abcdef...ABCD... ์ˆœ์œผ๋กœ ์ •๋ ฌ๋  ๊ฒƒ์ด๋‹ค. ์ด๋ฅผ reverse() ๋ฉ”์„œ๋“œ๋ฅผ ์ด์šฉํ•ด ๋’ค์ง‘์œผ๋ฉด ZYXW... fedcba ์ˆœ์œผ๋กœ ์ •๋ ฌ๋  ๊ฒƒ์ด๋‹ค. ๋Œ€๋ฌธ์ž๊ฐ€ ์†Œ๋ฌธ์ž๋ณด๋‹ค ์ž‘์€ ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผ๋˜๋ฏ€๋กœ reverse() ๋ฉ”์„œ๋“œ๋กœ ๋์ด ..

[Programmers] JavaScript ํฌ๋ ˆ์ธ ์ธํ˜• ๋ฝ‘๊ธฐ ๊ฒŒ์ž„

๋ฌธ์ œ ๊ฒŒ์ž„ ํ™”๋ฉด์€ 1 x 1 ํฌ๊ธฐ์˜ ์นธ๋“ค๋กœ ์ด๋ฃจ์–ด์ง„ N x N ํฌ๊ธฐ์˜ ์ •์‚ฌ๊ฐ ๊ฒฉ์ž ์œ„์ชฝ์—๋Š” ํฌ๋ ˆ์ธ์ด ์žˆ๊ณ  ์˜ค๋ฅธ์ชฝ์—๋Š” ๋ฐ”๊ตฌ๋‹ˆ๊ฐ€ ์กด์žฌํ•œ๋‹ค. ๋ชจ๋“  ์ธํ˜•์€ 1 x 1 ํฌ๊ธฐ์˜ ๊ฒฉ์ž ํ•œ ์นธ์„ ์ฐจ์ง€ํ•œ๋‹ค. ๊ฒŒ์ž„ ์‚ฌ์šฉ์ž๋Š” ํฌ๋ ˆ์ธ์„ ์ขŒ์šฐ๋กœ ์›€์ง์—ฌ์„œ ๋ฉˆ์ถ˜ ์œ„์น˜์—์„œ ๊ฐ€์žฅ ์œ„์— ์žˆ๋Š” ์ธํ˜•์„ ์ง‘์–ด ์˜ฌ๋ฆฌ๊ณ , ์ง‘์–ด ์˜ฌ๋ฆฐ ์ธํ˜•์€ ๋ฐ”๊ตฌ๋‹ˆ์— ์Œ“์ด๊ฒŒ ๋˜๋Š” ๋ฐ, ์ด๋•Œ ๋ฐ”๊ตฌ๋‹ˆ์˜ ๊ฐ€์žฅ ์•„๋ž˜ ์นธ๋ถ€ํ„ฐ ์ธํ˜•์ด ์ˆœ์„œ๋Œ€๋กœ ์Œ“์ธ๋‹ค. ์ œํ•œ ์‚ฌํ•ญ board ๋ฐฐ์—ด์€ 2์ฐจ์› ๋ฐฐ์—ด๋กœ ํฌ๊ธฐ๋Š” 5 x 5 ์ด์ƒ 30 x 30 ์ดํ•˜์ž…๋‹ˆ๋‹ค. board์˜ ๊ฐ ์นธ์—๋Š” 0 ์ด์ƒ 100 ์ดํ•˜์ธ ์ •์ˆ˜๊ฐ€ ๋‹ด๊ฒจ์žˆ์Šต๋‹ˆ๋‹ค. 0์€ ๋นˆ ์นธ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. 1 ~ 100์˜ ๊ฐ ์ˆซ์ž๋Š” ๊ฐ๊ธฐ ๋‹ค๋ฅธ ์ธํ˜•์˜ ๋ชจ์–‘์„ ์˜๋ฏธํ•˜๋ฉฐ ๊ฐ™์€ ์ˆซ์ž๋Š” ๊ฐ™์€ ๋ชจ์–‘์˜ ์ธํ˜•์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. moves ๋ฐฐ์—ด์˜ ํฌ๊ธฐ๋Š” 1 ์ด์ƒ ..

[Programmers] ์‹ ๊ทœ ์•„์ด๋”” ์ถ”์ฒœํ•˜๊ธฐ (JavaScript/์ •๊ทœ์‹)

๋ฌธ์ œ ์‹ ๊ทœ ์•„์ด๋”” ์ถ”์ฒœ ๋ฌธ์ œ. ์นด์นด์˜ค์— ์ž…์‚ฌํ•œ ์‹ ์ž… ๊ฐœ๋ฐœ์ž ๋„ค์˜ค๋Š” ์นด์นด์˜ค๊ณ„์ •๊ฐœ๋ฐœํŒ€์— ๋ฐฐ์น˜๋˜์–ด, ์นด์นด์˜ค ์„œ๋น„์Šค์— ๊ฐ€์ž…ํ•˜๋Š” ์œ ์ €๋“ค์˜ ์•„์ด๋””๋ฅผ ์ƒ์„ฑํ•˜๋Š” ์—…๋ฌด๋ฅผ ๋‹ด๋‹นํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋„ค์˜ค์—๊ฒŒ ์ฃผ์–ด์ง„ ์ฒซ ์—…๋ฌด๋Š” ์ƒˆ๋กœ ๊ฐ€์ž…ํ•˜๋Š” ์œ ์ €๋“ค์ด ์นด์นด์˜ค ์•„์ด๋”” ๊ทœ์น™์— ๋งž์ง€ ์•Š๋Š” ์•„์ด๋””๋ฅผ ์ž…๋ ฅํ–ˆ์„ ๋•Œ, ์ž…๋ ฅ๋œ ์•„์ด๋””์™€ ์œ ์‚ฌํ•˜๋ฉด์„œ ๊ทœ์น™์— ๋งž๋Š” ์•„์ด๋””๋ฅผ ์ถ”์ฒœํ•ด์ฃผ๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ๊ฐœ๋ฐœํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‹ค์Œ์€ ์นด์นด์˜ค ์•„์ด๋””์˜ ๊ทœ์น™์ž…๋‹ˆ๋‹ค. ์•„์ด๋””์˜ ๊ธธ์ด๋Š” 3์ž ์ด์ƒ 15์ž ์ดํ•˜์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์•„์ด๋””๋Š” ์•ŒํŒŒ๋ฒณ ์†Œ๋ฌธ์ž, ์ˆซ์ž, ๋นผ๊ธฐ(-), ๋ฐ‘์ค„(_), ๋งˆ์นจํ‘œ(.) ๋ฌธ์ž๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹จ, ๋งˆ์นจํ‘œ(.)๋Š” ์ฒ˜์Œ๊ณผ ๋์— ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์œผ๋ฉฐ ๋˜ํ•œ ์—ฐ์†์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋„ค์˜ค๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด 7๋‹จ๊ณ„์˜ ์ˆœ์ฐจ์ ์ธ ์ฒ˜๋ฆฌ ๊ณผ์ •์„ ํ†ตํ•ด ์‹ ๊ทœ ์œ ์ €๊ฐ€ ์ž…..

[Programmers] ํ•ธ๋“œํฐ ๋ฒˆํ˜ธ์˜ ํŠน์ • ๋ฒ”์œ„๋ฅผ ๋งˆ์Šคํ‚นํ•˜๊ธฐ (JavaScript/์ •๊ทœ์‹)

๋ฌธ์ œ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๋ชจ๋ฐ”์ผ์€ ๊ฐœ์ธ์ •๋ณด ๋ณดํ˜ธ๋ฅผ ์œ„ํ•ด ๊ณ ์ง€์„œ๋ฅผ ๋ณด๋‚ผ ๋•Œ ๊ณ ๊ฐ๋“ค์˜ ์ „ํ™”๋ฒˆํ˜ธ์˜ ์ผ๋ถ€๋ฅผ ๊ฐ€๋ฆฝ๋‹ˆ๋‹ค. ์ „ํ™”๋ฒˆํ˜ธ๊ฐ€ ๋ฌธ์ž์—ด phone_number๋กœ ์ฃผ์–ด์กŒ์„ ๋•Œ, ์ „ํ™”๋ฒˆํ˜ธ์˜ ๋’ท 4์ž๋ฆฌ๋ฅผ ์ œ์™ธํ•œ ๋‚˜๋จธ์ง€ ์ˆซ์ž๋ฅผ ์ „๋ถ€ *์œผ๋กœ ๊ฐ€๋ฆฐ ๋ฌธ์ž์—ด์„ ๋ฆฌํ„ดํ•˜๋Š” ํ•จ์ˆ˜, solution์„ ์™„์„ฑํ•ด์ฃผ์„ธ์š”. ์ฝ”๋“œ ํ’€์ด replace ๋ฉ”์„œ๋“œ๋ฅผ ํ†ตํ•ด ์ •๊ทœ์‹ ํŒจํ„ด์„ ์ฒซ ๋ฒˆ์งธ ์ธ์ž๋กœ ๋„ฃ๊ณ , ๋งˆ์Šคํ‚นํ•˜๊ณ ์ž ํ•˜๋Š” ๋ฌธ์ž๋ฅผ ๋‘ ๋ฒˆ์งธ ์ธ์ž๋กœ ๋„ฃ์–ด์ค€๋‹ค. ?= : lookahead. ์ „๋ฐฉ ํƒ์ƒ‰์„ ์œ„ํ•œ ํŒจํ„ด์ด๋‹ค. ?= ์ด ๋‹ค์Œ์— ์˜ค๋Š” ๋ฌธ์ž๊ฐ€ ์ผ์น˜ํ•˜๋Š” ์˜์—ญ์—์„œ ์ œ์™ธ๋œ๋‹ค. ๋˜ํ•œ, ์ „๋ฐฉ ํƒ์ƒ‰์€ ํ•˜์œ„ ํ‘œํ˜„์‹์ฒ˜๋Ÿผ ์†Œ๊ด„ํ˜ธ๋กœ ๊ฐ์‹ธ์ค€๋‹ค. .+(?=:) ์˜ ๊ฒฝ์šฐ http://www.abc.com https://www.abc.com http://www.abc.co.kr ์œ„..

[Programmers] JavaScript ํ–‰๋ ฌ์˜ ๋ง์…ˆ, ํ‚คํŒจ๋“œ ๋ˆ„๋ฅด๊ธฐ ๋ฌธ์ œ

๋ฌธ์ œ ํ–‰๋ ฌ์˜ ๋ง์…ˆ์€ ํ–‰๊ณผ ์—ด์˜ ํฌ๊ธฐ๊ฐ€ ๊ฐ™์€ ๋‘ ํ–‰๋ ฌ์˜ ๊ฐ™์€ ํ–‰, ๊ฐ™์€ ์—ด์˜ ๊ฐ’์„ ์„œ๋กœ ๋”ํ•œ ๊ฒฐ๊ณผ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. 2๊ฐœ์˜ ํ–‰๋ ฌ arr1๊ณผ arr2๋ฅผ ์ž…๋ ฅ๋ฐ›์•„, ํ–‰๋ ฌ ๋ง์…ˆ์˜ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜, solution์„ ์™„์„ฑํ•ด์ฃผ์„ธ์š”. ์ œํ•œ ์กฐ๊ฑด ํ–‰๋ ฌ arr1, arr2์˜ ํ–‰๊ณผ ์—ด์˜ ๊ธธ์ด๋Š” 500์„ ๋„˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค ์ฝ”๋“œ ์ฒซ ๋ฒˆ์งธ, ๋‘ ๋ฒˆ์งธ ํ–‰๋ ฌ์ด ๊ฐ๊ฐ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ๋“ค์–ด์˜จ๋‹ค. ๊ฐ ํ–‰๋ ฌ์˜ ๊ฐ™์€ ํ–‰, ์—ด๋ผ๋ฆฌ ๋”ํ•ด์„œ ์ƒˆ๋กœ์šด ํ–‰๋ ฌ์„ ๋ฆฌํ„ดํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค. ์ค‘์ฒฉ๋œ for ๋ฌธ์„ ์‚ฌ์šฉํ•ด ๋ฌธ์ œ๋ฅผ ํ’€์—ˆ๋Š”๋ฐ, map์„ ํ†ตํ•ด ๊ฐœ์„ ํ•œ ์ฝ”๋“œ๋ฅผ ๋ดค๋‹ค. ๋ฐฐ์—ด์„ ๋‹ค๋ฃฐ ๋•Œ๋Š” map()์„ ์ ๊ทน์ ์œผ๋กœ ํ™œ์šฉํ•˜๋ฉด ์ฝ”๋“œ๊ฐ€ ์ •๋ง ๊น”๋”ํ•ด์ง„๋‹ค. map์˜ ์ธ์ˆ˜๋กœ ์›์†Œ, ๊ทธ๋ฆฌ๊ณ  ์ธ๋ฑ์Šค๋ฅผ ๋ฐ›์„ ์ˆ˜ ์žˆ์œผ๋‹ˆ, ๊ตณ์ด ์ผ๋ฐ˜ for ๋ฌธ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•„๋„ ๋œ๋‹ค. ๋ฌธ์ œ 2020 ์นด์นด์˜ค ์ธํ„ด..

[Programmers] JavaScript ์‹คํŒจ์œจ ๊ตฌํ•˜๊ธฐ / ์˜ˆ์‚ฐ ๋ฌธ์ œ

๋ฌธ์ œ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค 2019 KAKAO BLIND RECRUITMENT ์‹คํŒจ์œจ ๋ฌธ์ œ ์‹คํŒจ์œจ์€ ์Šคํ…Œ์ด์ง€์— ๋„๋‹ฌํ–ˆ์œผ๋‚˜ ์•„์ง ํด๋ฆฌ์–ดํ•˜์ง€ ๋ชปํ•œ ํ”Œ๋ ˆ์ด์–ด์˜ ์ˆ˜ / ์Šคํ…Œ์ด์ง€์— ๋„๋‹ฌํ•œ ํ”Œ๋ ˆ์ด์–ด ์ˆ˜๋กœ ์ •์˜ํ•œ๋‹ค. ์ „์ฒด ์Šคํ…Œ์ด์ง€์˜ ๊ฐœ์ˆ˜ N, ๊ฒŒ์ž„์„ ์ด์šฉํ•˜๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ํ˜„์žฌ ๋ฉˆ์ถฐ์žˆ๋Š” ์Šคํ…Œ์ด์ง€์˜ ๋ฒˆํ˜ธ๊ฐ€ ๋‹ด๊ธด ๋ฐฐ์—ด stages๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, ์‹คํŒจ์œจ์ด ๋†’์€ ์Šคํ…Œ์ด์ง€๋ถ€ํ„ฐ ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์Šคํ…Œ์ด์ง€์˜ ๋ฒˆํ˜ธ๊ฐ€ ๋‹ด๊ฒจ์žˆ๋Š” ๋ฐฐ์—ด์„ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•˜๋ผ. ์ œํ•œ ์‚ฌํ•ญ ์Šคํ…Œ์ด์ง€์˜ ๊ฐœ์ˆ˜ N์€ 1 ์ด์ƒ 500 ์ดํ•˜์˜ ์ž์—ฐ์ˆ˜์ด๋‹ค. stages์˜ ๊ธธ์ด๋Š” 1 ์ด์ƒ 200,000 ์ดํ•˜์ด๋‹ค. stages์—๋Š” 1 ์ด์ƒ N + 1 ์ดํ•˜์˜ ์ž์—ฐ์ˆ˜๊ฐ€ ๋‹ด๊ฒจ์žˆ๋‹ค. ๊ฐ ์ž์—ฐ์ˆ˜๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ํ˜„์žฌ ๋„์ „ ์ค‘์ธ ์Šคํ…Œ์ด์ง€์˜ ๋ฒˆํ˜ธ๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค. ๋‹จ, ..

[Programmers] JavaScript์—์„œ ๊ฐ€์šด๋ฐ ๊ธ€์ž ๊ฐ€์ ธ์˜ค๊ธฐ (+Java)

๋ฌธ์ œ ๋‹จ์–ด s์˜ ๊ฐ€์šด๋ฐ ๊ธ€์ž๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜, solution์„ ๋งŒ๋“ค์–ด ๋ณด์„ธ์š”. ๋‹จ์–ด์˜ ๊ธธ์ด๊ฐ€ ์ง์ˆ˜๋ผ๋ฉด ๊ฐ€์šด๋ฐ ๋‘๊ธ€์ž๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์ž…์ถœ๋ ฅ์˜ ์˜ˆ "abcde" -> "c" "qwer" -> "we" ์ฝ”๋“œ ํ’€์ด % ์—ฐ์‚ฐ์ž๋Š” ๋‚˜๋ˆ—์…ˆ ์—ฐ์‚ฐ ํ›„ ๋‚˜๋จธ์ง€๋ฅผ ๊ตฌํ•œ๋‹ค. 2๋กœ ๋‚˜๋ˆ„์—ˆ์„ ๋•Œ ๋‚˜๋จธ์ง€ ๊ธธ์ด๊ฐ€ 0์ด๋ผ๋ฉด, ์ฃผ์–ด์ง„ ๋‹จ์–ด์˜ ๊ธธ์ด๋Š” ์ง์ˆ˜์ด๋‹ค. ๋ฌธ์ž์—ด์€ ์ฝ๊ธฐ ์ „์šฉ ๋ฐฐ์—ด์ฒ˜๋Ÿผ ์ทจ๊ธ‰๋˜๊ธฐ ๋•Œ๋ฌธ์—, ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•ด ํŠน์ • ์œ„์น˜์˜ ๋ฌธ์ž๋ฅผ ์ถ”์ถœํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด์„œ ์ „์ฒด ๋ฌธ์ž์—ด ๊ธธ์ด๋ฅผ 2๋กœ ๋‚˜๋ˆˆ ํ›„, Math.floor() ํ•จ์ˆ˜๋ฅผ ์ ์šฉํ•ด, ์†Œ์ˆ˜์  ์ดํ•˜๋ฅผ ๋ฒ„๋ฆฐ๋‹ค. (๋ฐฐ์—ด์˜ ์ธ๋ฑ์Šค๋Š” ํ•ญ์ƒ ์ •์ˆ˜์ด๋‹ค) ์‚ผํ•ญ ์—ฐ์‚ฐ์ž๋ฅผ ์จ์„œ ๋ฌธ์ž์—ด ๊ธธ์ด๊ฐ€ ์ง์ˆ˜์ธ ๊ฒฝ์šฐ์—๋Š” ๊ตฌํ•œ ์ธ๋ฑ์Šค-1 ์˜ ์œ„์น˜๋ฅผ ๋”ํ•œ ๋ฌธ์ž์—ด์„ ์ถœ๋ ฅํ•œ๋‹ค. ๋ฌธ์ž์—ด์„ ์ž๋ฅด๋Š” ๋Œ€ํ‘œ์ ์ธ ๋ฉ”์†Œ..