본문 바로가기
반응형

자바스크립트11

자바스크립트) 객체의 참조 VS 얕은 복사 VS 깊은 복사 자바스크립트에서 객체를 다루려면 참조와 복사의 개념에 대해 반드시 알아야 한다. 객체의 참조, 얕은 복사, 깊은 복사의 차이점에 대해 자세히 알아보도록 하겠다. 요약 의미 방식 참조 (reference) 같은 객체를 참조 변수에 그대로 대입 얕은 복사 (shallow copy) 중첩된 객체를 복사했을 때, 가장 바깥 객체만 복사되며 내부 객체는 참조 관계를 유지. 깊은 복사와 참조의 중간 형식 스프레드 문법 사용 깊은 복사 (deep copy) 복사하여 새로운 객체를 생성 참조 관계가 생기지 않음 JSON 연산자 사용 참조 (Reference) 변수 array와 ref는 같은 객체를 참조하고 있기 때문에 어떤 걸 비교해도 true로 반환된다. 한쪽에서 변경하면 다른 쪽도 변경된다. 1 2 3 4 5 6 .. 2023. 10. 2.
스택(Stack) - 자바스크립트, JS class Stack { constructor() { this.items = []; } // 스택에 요소 추가 push(element) { this.items.push(element); } // 스택에서 가장 위의 요소 제거 후 반환 pop() { if (this.isEmpty()) { return "Stack is empty."; } return this.items.pop(); } // 스택의 가장 위의 요소 반환 (제거하지 않음) peek() { if (this.isEmpty()) { return "Stack is empty."; } return this.items[this.items.length - 1]; } // 스택이 비어있는지 여부 확인 isEmpty() { return this.items.l.. 2023. 7. 15.
격자판에서 최대값 구하기-JS, 자바스크립트 5X5 격자판에서, 가로,세로,대각선 합중에서 제일 큰 값을 구하시오function solution(arr){      let answer=Number.MIN_SAFE_INTEGER;    let n=arr.length;    let sum1=sum2=0;    for(let i=0; in; i++){        sum1=sum2=0;        for(let j=0; jn; j++){            sum1+=arr[i][j];            sum2+=arr[j][i];        }        answer=Math.max(answer, sum1, sum2);    }    sum1=sum2=0;    for(let i=0; in; i++){        sum1+=arr[i][i].. 2023. 6. 25.
등수 구하기 -JS, 자바스크립트 N명의 학생의 국어점수가 입력되면 각 학생의 등수를 입력된 순서대로 출력하세요. function solution(arr) {    let answer = Array.from({ length: arr.length }, () => 1);    for (let i = 0; i arr.length; i++) {        for (let j = 0; j arr.length; j++) {            if (arr[j] > arr[i]) answer[i]++;        }    }    return answer;}let arr = [87, 89, 92, 100, 76];console.log(solution(arr)); 2023. 6. 25.
이진 탐색(Binary Search)-JS, 자바스크립트 -반복법 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 function binarySearch(arr, target){ let leftIndex = 0; let rightIndex = arr.length - 1 while(leftIndex rightIndex){ return -1 } let middleIndex = Math.floor((leftIndex + rightIndex)/2) if (target === arr[middleIndex]){ return middleIndex; } if(target Big-O는 O(logn) 2023. 2. 5.
프로그래머스 - 최대공약수와 최소공배수(JS, 자바스크립트) https://school.programmers.co.kr/learn/courses/30/lessons/12940 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1 2 3 4 5 6 7 8 9 function gcd(n,m){ //최대 공약수 return m===0 ? n: gcd(m,n%m) } function solution(n, m) { let gcdNum = gcd(n,m); let lcmNum = n*m/gcdNum; //최소공배수 = 두 자연수의 곱 / 최대공약수 return [gcdNum,lcmNum]; } Colored by Color Sc.. 2023. 2. 2.
프로그래머스 - 저주의 숫자 3 (JS, 자바스크립트) https://school.programmers.co.kr/learn/courses/30/lessons/120871 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1 2 3 4 5 6 7 8 9 function solution(n) { let arr = []; let num = 0; while (arr.length !== n) { if (num%3!==0 && !(num.toString()).includes('3')) arr.push(num); num++ } return arr.pop(); } Colored by Color Scripter cs 2023. 2. 2.
프로그래머스 - 안전지대 (JS, 자바스크립트) 주소: https://school.programmers.co.kr/learn/courses/30/lessons/120866 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 12345678910111213141516171819202122const disX = [-1, -1, -1, 0, 0, 1, 1, 1];const disY = [-1, 0, 1, -1, 1, -1, 0, 1];function solution(board) { let length = board.length let dangerZone = JSON.parse(JSON.stringify(board.. 2023. 2. 1.
자바스크립트) this 1) var o ={ func : function(){ if(0===this){ document.write("o===this") //o===this가 출력됨. } } } 2) function func(){ if(window)===this){ //--> 일반적인 객체에 속해있지 않은 this console.log("window===this"); //window===this가 출력됨. } } 결론: this는 함수 안에서 사용되는 일종의 변수이다. 객체 안에서의 this는 'this가 속한 객체(자기자신)'를 가리킨다. 만약 this가 객체 밖에 있다면, Window라는 전역 객체를 가리킨다. o.func() 객체에서 this는 o(현재 this가 속해있는 곳)을 가리킨다. 어떤 곳에서도 속하지 않은 모든 .. 2021. 7. 30.
반응형