๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
728x90
๋ฐ˜์‘ํ˜•
[JS] ํ”„๋กœํ† ํƒ€์ž…(Prototype) ๋‹ค๋ค„๋ณด๊ธฐ ์•ˆ๋…•ํ•˜์„ธ์š” Foma ๐Ÿ’ป ์ž…๋‹ˆ๋‹ค. ์˜ค๋Š˜๋„ ์—ญ์‹œ ๋ชจ๋˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ํ†ตํ•ด ๋ฐฐ์šด ํ”„๋กœํ† ํƒ€์ž…์„ ๋ณต์Šตํ•˜๋Š” ์ฐจ์›์—์„œ ๋‹ค์‹œ ํ•œ๋ฒˆ ์ •๋ฆฌํ•˜๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๋ฐ”๋กœ ์‹œ์ž‘ํ• ๊ฒŒ์š”~ Prototype์ด๋ž€? ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ๋ชจ๋“  ๊ฐ์ฒด๋Š” ์ˆจ๊น€ ํ”„๋กœํผํ‹ฐ๋กœ Prototype์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ์ด๊ฒƒ์€ null์ด๊ฑฐ๋‚˜ ๋‹ค๋ฅธ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ ์ด๊ฒƒ์„ ํ†ตํ•ด์„œ ํ•ด๋‹น ๊ฐ์ฒด์˜ ๊ธฐ๋Šฅ(๋ฉ”์„œ๋“œ)์„ ๋ณต์‚ฌํ•˜๊ฑฐ๋‚˜ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋ ‡๊ฒŒ ์ฐธ์กฐํ•œ ๋‹ค๋ฅธ ๊ฐ์ฒด๋ฅผ ํ˜„์žฌ ๊ฐ์ฒด์˜ 'ํ”„๋กœํ† ํƒ€์ž…'์ด๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. Prototype ์„ค์ •ํ•˜๊ธฐ 1. __proto__ ์šด๋™์„ ์ˆ˜๋ฅผ ์ง€์นญํ•˜๋Š” 'player'๋ผ๋Š” ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๊ณ  let player = { firstName:"Young", lastName:"An", get fullName() { return this.firstName .. 2022. 2. 12.
[JS] ํ”„๋กœํผํ‹ฐ ์˜ต์…˜(ํ”Œ๋ž˜๊ทธ) ๋‹ค๋ฃจ๊ธฐ(Property Flag) ์•ˆ๋…•ํ•˜์„ธ์š” Foma๐Ÿ’ป ์ž…๋‹ˆ๋‹ค. ์˜ค๋Š˜์€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ํ”„๋กœํผํ‹ฐ ํ”Œ๋ž˜๊ทธ์— ๋Œ€ํ•ด์„œ ์ •๋ฆฌํ•ด๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์‚ฌ์ดํŠธ์—์„œ ๊ณต๋ถ€ํ•˜๋Š” ๊ฒƒ์„ ๋ณต์Šตํ•˜๋Š” ์ฐจ์›์—์„œ ์ œ๊ฐ€ ์ดํ•ดํ•œ ๋ฐฉ์‹์œผ๋กœ ์ ์–ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค! ๋ฐ”๋กœ ์‹œ์ž‘ํ• ๊ฒŒ์š”~ Property Flag๋ž€? ํ”„๋กœํผํ‹ฐ๋Š” ๊ฐ’ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ํ”Œ๋ž˜๊ทธ๋ผ ๋ถˆ๋ฆฌ๋Š” ํŠน๋ณ„ํ•œ ์†์„ฑ 3๊ฐ€์ง€๋ฅผ ๊ฐ€์ง„๋‹ค. 1. writable ํ•ด๋‹น ํ”„๋กœํผํ‹ฐ๋ฅผ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๊ฒŒ ์„ค์ •ํ•˜๋Š” ํ”Œ๋ž˜๊ทธ 2. enumrable ํ•ด๋‹น ํ”„๋กœํผํ‹ฐ๋ฅผ ๋‚˜์—ดํ•  ์ˆ˜ ์žˆ๊ฒŒ ์„ค์ •ํ•˜๋Š” ํ”Œ๋ž˜๊ทธ 3. configurable ํ•ด๋‹น ํ”„๋กœํผํ‹ฐ๋ฅผ ์‚ญ์ œ, ํ”Œ๋ž˜๊ทธ ์ˆ˜์ •์ด ๊ฐ€๋Šฅํ•˜๊ฒŒ ์„ค์ •ํ•˜๋Š” ํ”Œ๋ž˜๊ทธ Property Flag ํ™•์ธํ•˜๋Š” ๋ฐฉ๋ฒ• Object.getOwnPropertyDescriptor(๊ฐ์ฒด,ํ”„๋กœํผํ‹ฐ๋ช…)์œผ๋กœ ํ™•์ธํ•˜๊ณ , ์ดˆ๊ธฐ์—” ๋ชจ๋‘ true๋กœ ์„ค์ •๋˜์–ด ์žˆ.. 2022. 2. 12.
[JS] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ํฐ์ผ“๋ชฌ Problem ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ํฐ์ผ“๋ชฌ ๋‹น์‹ ์€ ํฐ์ผ“๋ชฌ์„ ์žก๊ธฐ ์œ„ํ•œ ์˜ค๋žœ ์—ฌํ–‰ ๋์—, ํ™ ๋ฐ•์‚ฌ๋‹˜์˜ ์—ฐ๊ตฌ์‹ค์— ๋„์ฐฉํ–ˆ์Šต๋‹ˆ๋‹ค. ํ™ ๋ฐ•์‚ฌ๋‹˜์€ ๋‹น์‹ ์—๊ฒŒ ์ž์‹ ์˜ ์—ฐ๊ตฌ์‹ค์— ์žˆ๋Š” ์ด N ๋งˆ๋ฆฌ์˜ ํฐ์ผ“๋ชฌ ์ค‘์—์„œ N/2๋งˆ๋ฆฌ๋ฅผ ๊ฐ€์ ธ๊ฐ€๋„ ์ข‹๋‹ค๊ณ  ํ–ˆ์Šต๋‹ˆ๋‹ค. programmers.co.kr Solution 1. nums์˜ ๊ธธ์ด์˜ ๋ฐ˜์„ ๊ตฌํ•œ๋‹ค. let half = nums.length/2 2. Set์— nums์— ์žˆ๋Š” ๋ฒˆํ˜ธ๋ฅผ ๋„ฃ๋Š”๋‹ค. let set = new Set() for (let i = 0; i < nums.length; i++) { set.add(nums[i]) } 3. Set์˜ ์‚ฌ์ด์ฆˆ์™€ nums์˜ ๊ธธ์ด์˜ ๋ฐ˜๊ณผ ๋น„๊ตํ•ด ๋” ์ž‘์€ ๊ฒƒ์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค. return Math.min(set.size,half) Source Code fun.. 2022. 2. 6.
[Swift&JS] HackerRank Staircase Problem Staircase | HackerRank Print a right-aligned staircase with n steps. www.hackerrank.com Source Code Swift import Foundation let n:Int = Int(readLine()!)! var start = Array(repeating:" ", count: n) func staircase(n: Int) { for i in 1...n { start[n-i] = "#" print(start.joined()) } } staircase(n: n) JS 'use strict'; process.stdin.resume(); process.stdin.setEncoding('utf-8'); let inputString.. 2022. 2. 6.
[JS] JSON๊ณผ ๊ฐ์ฒด ๋‹ค๋ฃจ๊ธฐ ์•ˆ๋…•ํ•˜์„ธ์š” Foma ๐Ÿ’ป ์ž…๋‹ˆ๋‹ค! ์˜ค๋Š˜์€ JavaScript๋กœ JSON๊ณผ ๊ฐ์ฒด๋ฅผ ๋‹ค๋ฃจ๋Š” ๋ฒ•์— ๋Œ€ํ•ด์„œ ์ •๋ฆฌํ•ด ๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๋ฐ”๋กœ ์‹œ์ž‘ํ• ๊ฒŒ์š”~ ๊ฐ์ฒด๋ฅผ JSON์œผ๋กœ ๋ฐ”๊พธ๊ธฐ JSON.stringify(๊ฐ์ฒด) ๊ตฌ๋ฌธ์„ ์‚ฌ์šฉํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค. let user = { name:"foma", age:27, color:"Black", [Symbol("id")]:123 } let json = JSON.stringify(user) console.log(json) //{"name":"foma","age":27,"color":"Black"} ๋งŒ์•ฝ ๋ฉ”์„œ๋“œ๋‚˜ undefined๊ฐ’์„ ๊ฐ€์ง„ ํ”„๋กœํผํ‹ฐ๊ฐ€ ์žˆ๋‹ค๋ฉด ์ž๋™์œผ๋กœ ๋ฌด์‹œํ•ฉ๋‹ˆ๋‹ค. user.sayHi = function() { print("sayHi") } user.somthing = un.. 2022. 2. 5.
[JS] ๊ตฌ์กฐ๋ถ„ํ•ด(Destructuring) (feat. ์‰ฝ๊ฒŒ ๋ณ€์ˆ˜ ๋งŒ๋“ค๊ธฐ) ์•ˆ๋…•ํ•˜์„ธ์š” Foma ๐Ÿ’ป ์ž…๋‹ˆ๋‹ค! ์˜ค๋Š˜์€ JavaScript์—์„œ ์•„์ฃผ ์œ ์šฉํ•˜๊ฒŒ ๋ณ€์ˆ˜๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๊ตฌ์กฐ๋ถ„ํ•ด์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๋ฐ”๋กœ ์‹œ์ž‘ํ• ๊ฒŒ์š”~ ๋ฐฐ์—ด ๋ถ„ํ•ดํ•ด์„œ ๋ณ€์ˆ˜ ๋งŒ๋“ค๊ธฐ ๋Œ€๊ด„ํ˜ธ๋ฅผ ์ด์šฉํ•ด์„œ ๋ณ€์ˆ˜์— ๊ฐ’์„ ํ• ๋‹นํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. let arr = ["foma","gran"] let [foma,gran] = arr console.log(foma) //"foma" console.log(gran) //"gran" ๋ฌธ์ž์—ด ๋ถ„ํ•ดํ•ด์„œ ๋ณ€์ˆ˜ ๋งŒ๋“ค๊ธฐ ๋ฌธ์ž์—ด์„ ์›ํ•˜๋Š” ๋‹จ์œ„๋กœ ๋ถ„ํ•ดํ•˜์—ฌ ๋ณ€์ˆ˜๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. let fomagran = "foma,gran" let [foma,gran] = fomagran.split(',') console.log(foma) //"foma" console.log(gran) //"gra.. 2022. 2. 5.
[JS] iOS ๊ฐœ๋ฐœ์ž๊ฐ€ ์ดํ•ดํ•˜๋Š” JavaScript ๊ธฐ์ดˆ๋ฌธ๋ฒ• (feat. Swift) ์•ˆ๋…•ํ•˜์„ธ์š” Foma ๐Ÿ’ป ์ž…๋‹ˆ๋‹ค! ์–ผ๋งˆ ์ „์— ๋ฆฌ์•กํŠธ ๋„ค์ดํ‹ฐ๋ธŒ๋กœ ์ƒˆ๋กœ์šด ํ”„๋กœ์ ํŠธ๋ฅผ ๋งก๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. JavaScript๋ฅผ ๊ณต๋ถ€ํ•˜๋‹ค๋ณด๋‹ˆ Swift๋ž‘ ๋น„์Šทํ•œ ๊ฒƒ๋„ ์žˆ๊ณ  ์•„๋‹Œ ๋ถ€๋ถ„๋„ ๋งŽ๋”๋ผ๊ตฌ์š”. ๊ทธ๋ž˜์„œ ์›๋ž˜ ์ต์ˆ™ํ–ˆ๋˜ Swift๋ฅผ ๊ธฐ์ค€์œผ๋กœ JavaScript์™€ ๋‹ค๋ฅธ ์ ์— ๋Œ€ํ•ด์„œ๋งŒ ์ •๋ฆฌํ•ด ๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค! ๋ฐ”๋กœ ์‹œ์ž‘ํ• ๊ฒŒ์š”~ ๋ณ€์ˆ˜์™€ ์ƒ์ˆ˜ Swift์—์„  ์ƒ์ˆ˜๋ฅผ let,๋ณ€์ˆ˜๋ฅผ var๋กœ ์“ด๋‹ค. let name = "Fomagran" //์ƒ์ˆ˜ var name = "Fomagran" //๋ณ€์ˆ˜ JavaScript๋Š” ์ƒ์ˆ˜๋ฅผ const,๋ณ€์ˆ˜๋ฅผ let์ด๋ผ๊ณ  ์“ด๋‹ค. ์ด๋ฏธ ์ƒ์ˆ˜ let์— ์ต์ˆ™ํ•ด ์žˆ๋Š” ์ƒํƒœ๋ผ์„œ.. ์‹ค์ˆ˜๋ฅผ ๋งŽ์ด ํ•  ๊ฒƒ ๊ฐ™๋‹ค. const name = "Fomagran" //์ƒ์ˆ˜ let name = "Fomagran" //๋ณ€์ˆ˜ ์ถœ.. 2022. 2. 5.
[Swift] HackerRank Plus Minus Problem Plus Minus | HackerRank Calculate the fraction of positive, negative and zero values in an array. www.hackerrank.com Source Code HTML ์‚ฝ์ž… ๋ฏธ๋ฆฌ๋ณด๊ธฐํ•  ์ˆ˜ ์—†๋Š” ์†Œ์Šค 2022. 2. 2.
[Swift] HackerRank Diagonal Difference Problem Diagonal Difference | HackerRank Calculate the absolute difference of sums across the two diagonals of a square matrix. www.hackerrank.com Source Code HTML ์‚ฝ์ž… ๋ฏธ๋ฆฌ๋ณด๊ธฐํ•  ์ˆ˜ ์—†๋Š” ์†Œ์Šค 2022. 2. 1.
[Swift] HackerRank A Very Big Sum Problem A Very Big Sum | HackerRank Calculate the sum of the values in an array that might exceed the range of int values. www.hackerrank.com Source Code HTML ์‚ฝ์ž… ๋ฏธ๋ฆฌ๋ณด๊ธฐํ•  ์ˆ˜ ์—†๋Š” ์†Œ์Šค 2022. 1. 31.
[Swift] HackerRank Compare the Triplets Problem Compare the Triplets | HackerRank Compare the elements in two triplets. www.hackerrank.com Source Code HTML ์‚ฝ์ž… ๋ฏธ๋ฆฌ๋ณด๊ธฐํ•  ์ˆ˜ ์—†๋Š” ์†Œ์Šค 2022. 1. 31.
[Swift] HackerRank Simple Array Sum Problem Simple Array Sum | HackerRank Calculate the sum of integers in an array. www.hackerrank.com Source Code HTML ์‚ฝ์ž… ๋ฏธ๋ฆฌ๋ณด๊ธฐํ•  ์ˆ˜ ์—†๋Š” ์†Œ์Šค 2022. 1. 31.
728x90
๋ฐ˜์‘ํ˜•