๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

ํ”„์—” ๊ณต๋ถ€

(151)
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค level.0] 9๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€ function solution(number) { return number.split("").reduce((a, b) => Number(a) + Number(b))%9; } function solution(number) { const nums = number.split(""); let sum = 0; for (let i = 0; i < nums.length; i++) { sum += Number(nums[i]) } return sum % 9 } ๊ถ๊ธˆํ•ด์„œ ์†๋„ ๋น„๊ตํ•ด๋ดค๋Š”๋ฐ for ๋ฌธ ์ด์šฉํ•œ๊ฒŒ ๋” ์ ๊ฒŒ ๊ฑธ๋ฆฐ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‹จ์ˆœํ•˜๊ฒŒ 2๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€ ์ถœ๋ ฅํ•˜๋ ค๊ณ  ํ•˜๋‹ˆ๊นŒ ์•ˆ๋ผ์„œ ์ƒ๊ฐํ•ด๋ณด๋‹ˆ, ์ˆซ์ž๋กœ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๋Š” ๋ฒ”์œ„๊ฐ€ ์žˆ์—ˆ๋‹ค. ๊ทธ๋ž˜์„œ BigInt ๋ฅผ ์ด์šฉํ•ด์„œ ์ถœ๋ ฅํ•ด๋ณด๋‹ˆ, n ์„ ๋ถ™์ด๊ณ  ์ถœ๋ ฅ๋๋‹ค. Number ์˜ ๋ฉ”..
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค level.0] ๋‘ ์ˆ˜์˜ ์—ฐ์‚ฐ๊ฐ’ ๋น„๊ตํ•˜๊ธฐ ์—ฐ์‚ฐ ⊕๋Š” ๋‘ ์ •์ˆ˜์— ๋Œ€ํ•œ ์—ฐ์‚ฐ์œผ๋กœ ๋‘ ์ •์ˆ˜๋ฅผ ๋ถ™์—ฌ์„œ ์“ด ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. 12 ⊕ 3 = 123 3 ⊕ 12 = 312 ์–‘์˜ ์ •์ˆ˜ a์™€ b๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, a ⊕ b์™€ 2 * a * b ์ค‘ ๋” ํฐ ๊ฐ’์„ returnํ•˜๋Š” solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด ์ฃผ์„ธ์š”. ๋‹จ, a ⊕ b์™€ 2 * a * b๊ฐ€ ๊ฐ™์œผ๋ฉด a ⊕ b๋ฅผ return ํ•ฉ๋‹ˆ๋‹ค. ํ’€์ด 1 function solution(a, b) { return Number('' + a + b) > 2 * a * b ? Number('' + a + b) : 2 * a * b ; } ํ’€์ด 2 function solution(a, b) { return Math.max(Number('' + a + b), 2 * a * b ) } ๋‘๊ฐ€์ง€ ๋ฐฉ๋ฒ•..
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค level.1] ์ž์—ฐ์ˆ˜ ๋’ค์ง‘์–ด ๋ฐฐ์—ด๋กœ ๋งŒ๋“ค๊ธฐ function solution(n) { return String(n).split("").reverse().map(v=> Number(v)); } ๊ฐ€์žฅ ๋‹จ์ˆœํ•˜๊ฒŒ ์ƒ๊ฐ๋‚˜์„œ ์ด๋ ‡๊ฒŒ ํ’€์—ˆ๋Š”๋ฐ, ์†๋„๋ฉด์—์„œ ์ข‹์€ ์ฝ”๋“œ๋Š” ์•„๋‹Œ ๊ฒƒ ๊ฐ™๋‹ค. ์ž์—ฐ์ˆ˜ n์„ ๋’ค์ง‘์–ด ๊ฐ ์ž๋ฆฌ ์ˆซ์ž๋ฅผ ์›์†Œ๋กœ ๊ฐ€์ง€๋Š” ๋ฐฐ์—ด ํ˜•ํƒœ๋กœ ๋ฆฌํ„ดํ•ด์ฃผ์„ธ์š”. ์˜ˆ๋ฅผ๋“ค์–ด n์ด 12345์ด๋ฉด [5,4,3,2,1]์„ ๋ฆฌํ„ดํ•ฉ๋‹ˆ๋‹ค. n์€ 10,000,000,000์ดํ•˜์ธ ์ž์—ฐ์ˆ˜์ž…๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋‹น์—ฐํžˆ 0์ด ์ž์—ฐ์ˆ˜๊ฐ€ ์•„๋‹ˆ๋‹ˆ๊นŒ ๊ณ ๋ ค ์•ˆํ–ˆ๋Š”๋ฐ, ์ด์‚ฐ์ˆ˜ํ•™(?) ์—์„œ๋Š” 0์ด ํฌํ•จ๋˜๋Š” ๊ฒฝ์šฐ๋„ ์žˆ๋‹ค๊ณ  ํ•œ๋‹ค. ๊ทธ์น˜๋งŒ ์ด์‚ฐ์ˆ˜ํ•™์ด ๋” ์˜ˆ์™ธ์ ์ธ ๊ฒฝ์šฐ๋‹ˆ๊นŒ 0์ด ํฌํ•จ๋˜๋Š” ๋ฒ”์œ„๋ผ๋Š” ๋ง์ด ์—†๋‹ค๋ฉด ์ผ๋ฐ˜ ์ˆ˜ํ•™์œผ๋กœ ์ƒ๊ฐํ•ด์•ผ๊ฒ ๋‹ค! + ํŒ ํ™”์‚ดํ‘œ ํ•จ์ˆ˜์—์„œ ์ธ์ž๋ž‘ ๋ฉ”์„œ๋“œ๊ฐ€ ๋ฐ›๋Š” ์ธ์ž๋ž‘ ๊ฐ™์„ ๋•Œ ์ƒ๋žต์ด ๊ฐ€๋Šฅํ•œ๊ฑฐ๋ž‘ ..
[์•Œ๊ณ ๋ฆฌ์ฆ˜ || ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] x๋งŒํผ ๊ฐ„๊ฒฉ์ด ์žˆ๋Š” n๊ฐœ์˜ ์ˆซ์ž ์ฒ˜๋ฆฌ ์†๋„์— ๋Œ€ํ•ด ์ธ์ง€๋ฅผ ํ•˜๊ฒŒ ๋˜์–ด ์˜ค๋Š˜์€ ์†๋„๋„ ๋น„๊ตํ•ด ๋ดค๋‹ค. function solution(x, n) { return new Array(n).fill(x).map((v, i) => v += x * i) } ์ฒ˜์Œ์—” ์ด๋ ‡๊ฒŒ ํ’€์—ˆ๋Š”๋ฐ, ๊ฐ€์žฅ ๋น ๋ฅธ ์†๋„๋Š” 0.04ms ๊ฐ€ ๋‚˜์™”๋‹ค. ๊ทธ ๋‹ค์Œ์— ํ•œ ๋ฐฉ๋ฒ•์€ function solution(x, n) { let result = []; for (let i = 0; i < n; i++) { result.push(x + x * i) } return result; } ์ด๋ ‡๊ฒŒ for ๋ฌธ์„ ๋Œ๋ฆฐ ๋ฐฉ๋ฒ•์ธ๋ฐ, ๊ฐ€์žฅ ์†๋„๊ฐ€ 0.03ms ์ด ๋‚˜์™”๋‹ค. ํฐ ์ฐจ์ด๋Š” ์—†์ง€๋งŒ, ๋Œ€์ฒด๋กœ for ๋ฌธ์ด ๋” ๋น ๋ฅด๊ฒŒ ๋‚˜์™”๋‹ค.
[์•Œ๊ณ ๋ฆฌ์ฆ˜ || ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๋‚˜๋จธ์ง€๊ฐ€ 1์ด ๋˜๋Š” ์ˆ˜ ์ฐพ๊ธฐ + ๐Ÿ† ๊ณ ์ˆ˜์˜ ํ’€์ด๋ฒ• https://school.programmers.co.kr/learn/courses/30/lessons/87389 ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”. programmers.co.kr function solution(n) { for (let i = 0; i < n; i++) { if (n % i === 1) { return i; } } } ๋‹จ์ˆœํ•œ ๋‚˜์˜ ํ’€์ด. ์•„๋งˆ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์Šคํ„ฐ๋””๋ฅผ ์•ˆํ–ˆ๋”๋ผ๋ฉด ์ž˜ ํ•œ ์ค„ ์•Œ๊ณ  ๊ทธ๋ƒฅ ๋„˜์–ด๊ฐ”๊ฒ ์ง€..! 1. ์–ด๋–ป๊ฒŒ๋“  ํ’€์–ด๋ณธ๋‹ค. 2. ๋งž์ถ˜๋‹ค. 3. ๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ํ’€์ด๋ฅผ ์ฐธ๊ณ ํ•ด ๋ชจ๋ฅด๋Š” ๋ฐฉ์‹, ์ฐธ๊ณ  ํ• ๋งŒํ•œ ๋ฐฉ์‹, ๋ฉ”์„œ๋“œ ๋“ฑ์„ ๊ณต๋ถ€ํ•œ๋‹ค. 4. ๋‹ค๋ฅธ ๋ฌธ์ œ๋ฅผ ํ‘ผ๋‹ค..
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค/Javascript/์ฝ”๋”ฉ๊ธฐ์ดˆํŠธ๋ ˆ์ด๋‹] A ๊ฐ•์กฐํ•˜๊ธฐ function solution(myString) { return [...myString].map(v => v === "a" || v === "A" ? "A" : v.toLowerCase()).join(""); } ์ฒ˜์Œ์— "A" -> "A" ๊ฒฝ์šฐ๋ฅผ ๊ณ ๋ คํ•˜์ง€ ์•Š์•„์„œ ํ†ต๊ณผ๋˜์ง€ ์•Š์•˜๋‹ค. "A" ๊ฐ€ "a" ๊ฐ€ ๋˜์–ด๋ฒ„๋ฆผ. ๊ทผ๋ฐ map ์•ˆ์—์„œ v === "a" || "A" ? ์ด๋ ‡๊ฒŒ ์จ์„œ ๋˜ ํ†ต๊ณผ๋˜์ง€ ๋ชปํ–ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ์“ฐ๋ฉด v๋Š” "a" ์ธ ๊ฒฝ์šฐ์™€ ๊ทธ๋ƒฅ "A"๊ฐ€ ์žˆ๋Š” ์ƒํ™ฉ์ด์ง€ , v ๊ฐ€ "a" ๋˜๋Š” v๊ฐ€ "A" ์ผ ๋•Œ ๋‘๊ฐ€์ง€ ํ‰๊ฐ€๊ฐ€ ๋˜์ง€ ์•Š๋Š”๋‹ค. ๊ฐ€๋” ์ฐฉ๊ฐํ•ด์„œ ์ด๋ ‡๊ฒŒ ์ž˜๋ชป์“ด๋‹ค..!! boolean ๊ฐ’์œผ๋กœ ํ‰๊ฐ€ํ•ด์•ผํ•  ๋•Œ ๊ผญ ์œ ์˜ํ•˜๊ธฐ. ์•„๋ž˜ ์ฝ”๋“œ๋Š” ๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ์ฝ”๋“œ ์ค‘ ๊น”๋”ํ•ด๋ณด์ด๋ฉด์„œ, ์•ˆ๋ณด๋˜ ๋ฐฉ์‹์ด๋ผ ๊ฐ€์ ธ์™”๋‹ค. funct..
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค/Javascript/์ฝ”๋”ฉ๊ธฐ์ดˆํŠธ๋ ˆ์ด๋‹] ๋ฐฐ์—ด์˜ ๊ธธ์ด์— ๋”ฐ๋ผ์„œ ๋‹ค๋ฅธ ์—ฐ์‚ฐ ํ•˜๊ธฐ ๋‚ด๊ฐ€ ์ œ์ถœํ•œ ๋ฐฉ์‹. function solution(arr, n) { return arr.length % 2 === 1 ? arr.map((v, i) => i % 2 === 0 ? v + n : v) : arr.map((v, i) => i % 2 === 1 ? v + n : v)} ํ†ต๊ณผ๋Š” ํ–ˆ์ง€๋งŒ, ์ฝ”๋“œ๊ฐ€ ๋„ˆ๋ฌด ๊ธธ๊ณ  ๋ฐ˜๋ณต๋˜๋Š” ๋ถ€๋ถ„๋„ ๋งŽ๋‹ค. ๋ฌธ์ œ๋ฅผ ๊ทธ๋Œ€๋กœ ์จ์„œ ๊ทธ๋ ‡๋‹ค. ์•„๋ž˜์ฒ˜๋Ÿผ ๋ฌธ์ œ๋ฅผ ๊ฐ„๊ฒฐํ™” ์‹œ์ผœ์„œ ์กฐ๊ฑด๊ณผ ์ถœ๋ ฅ๊ฐ’์„ ์„ค์ •ํ•ด์ฃผ๋Š” ๋ฐฉ๋ฒ•์ด ๊ฐ€๋…์„ฑ์ด ์ข‹๋‹ค. const solution = (arr, n) => arr.map((num, idx) => ( arr.length % 2 !== idx % 2 ? num + n : num )) ๋ฐฐ์—ด์˜ ๊ธธ์ด์™€ index ์˜ ๊ธธ์ด๋ฅผ ์ผ์น˜ ์‹œํ‚ด. (ํ™€์ˆ˜์ผ ๋•Œ -> ํ™€์ˆ˜ index, ์ง..
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค/Javascript/์ฝ”๋”ฉ๊ธฐ์ดˆํŠธ๋ ˆ์ด๋‹] ์ ‘๋ฏธ์‚ฌ์ธ์ง€ ํ™•์ธํ•˜๊ธฐ function solution(my_string, is_suffix) { return my_string.slice(- is_suffix.length) === is_suffix ? 1 : 0; } ์ด๋ ‡๊ฒŒ ์ฃผ์–ด์ง„ ๋ฌธ์ž์˜ length ๋ฅผ ์ด์šฉํ•ด์„œ ํ’€์—ˆ๋Š”๋ฐ, string.endsWith() ๋ผ๋Š”๊ฒŒ ์žˆ์—ˆ๋‹ค. String.prototype.endsWith() https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith String.prototype.endsWith() - JavaScript | MDN The endsWith() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์–ด๋–ค ๋ฌธ์ž์—ด์—์„œ ํŠน์ • ๋ฌธ์ž์—ด๋กœ ๋๋‚˜๋Š”์ง€๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๊ทธ..

728x90
๋ฐ˜์‘ํ˜•