본문 바로가기

분류 전체보기

(157)
Linked List 에 대해서 1 . Linked List 원소를 배열처럼 차례대로 저장하지만, 원소들이 메모리상에 연속적으로 위치하지 않는다는 점이 다르다. 특징 다음과 같은 것들이 있다. 1. 연속되는 항목들이 포인터로 연결된다. 2. 마지막 항목은 Null을 가리킨다. 3. 프로그램이 수행되는 동안 크기가 커지거나 작아질 수 있다. 4. (시스템 메모리가 허용하는 범위내에서) 필요한 만큼 길어질 수 있다. 5. 메모리 공간을 낭비하지않는다,(하지만 포인터를 위한 추가의 메모리를 필요로 한다.) 배열에 비해 데이터의 추가/삽입 및 삭제가 용이하나 순차적으로 탐색하지 않으면 특정 위치의 요소에 접근할 수 없다. 그래서 일반적으로는 탐색 속도가 느리다. 그렇기에 탐색 또는 정렬을 자주하면 배열을, 추가/삭제가 많으면 연결리스트를 사용..
Stack 과 Queue에 대해서.. Stack은 제한적으로 접근할수 있는 나열 구조이다. 스택은 한 쪽 끝에서만 자료를 넣거나 뺼 수 있는 선형구조라고 한다. 스택을 영어로 해석하면 굴뚝이라는 의미가 되는데… 들어가는 구멍이 위에있고 밑에 구멍은 막혀있는 구조라고 생각하면 편하다. 위의 그림과 같이 스택에서 push라는 메소드를 실행할 경우에는 맨위의 값쪽으로 데이터를 집어 넣는다. 반대로 pop는 맨위의 값을 뺴내는 것을 의미한다. 그리고 스택에 대한 메소드를 정리해보자면 Stack.top() 스택의 가장 윗 데이터를 반환한다. Stack.pop() 스택의 가장 윗 데이터를 삭제한다. Stack.push() 스택의 가장 윗 데이터로 top이 가리키는 자리의 위에 메모리를 생성하고 데이터를 삽입한다. Stack.empty() 스택이 비었다..
OOP(Object Oriented Programming)에 대해서 객체지향 프로그래밍이란 캡슐화, 다형성, 상속, 추상화 등을 이용하고 코드 재사용을 증가시키고, 유지보수를 감소시키는 장점을 얻기 위해서 객체들을 연결 시켜 프로그래밍 하는 것 입니다. 캡슐화 여러가지를 한객체에 담을수있다. 다형성 한가지로 여러개를 만들어 낼수 있다. 상속 부모클래스로 부터 받아올수 있다. 추상화 복잡한 것을 단순하게 만들수 있다. Functional let Car = function(position ){ //함수생성 var someInstance = {} //객체선언 someInstance.position = 0 ; //position을 0으로 초기화 해준다. If(position){ someInstance.position = position; } someInstance.move = ..
알고리즘 & pseudo code 알고리즘 문제를 해결하기 위한 절차 1. 문제의 틀을 정한다. 2. 문제를 해결해야 하는 간단한 계획을 세우다 2. 내가 만들 솔루션이 제대로 되는지 테스트 케이스를 만들어라. 3. 문제 공간을 탐색하고 기술을 발견하십시오. 1. 문제의 틀을 정하기 코드를 먼저 작성하는 것이 중요한 것이 아니다. 문제를 제대로 읽고 input 과 output 형식이 어떤지 봐야한다. 그리고 문제의 조건들을 제대로 이해해야 한다. 2. 문제를 어떻게 해결하면 좋을지에 대해서 간단히 계획을 세운다. 위에서 읽은 틀을 바탕으로 코드를 작성하지 말고 문제를 어떻게 해결하면 좋을지 글이나 그림으로 표현해보자 .(pesudo code) 그렇게 문제의 해결 방안들을 고민하는 시간을 가지고 계획을 세운다. 3.내가 만들 솔루션이 제대..
toBe vs toEqual vs == vs === == 동등 연산자 원시함수를 비교할수 있다. 래퍼런스함수는 비교가 불가능하다. === 일치 연산자 주소와 값까지 일치하는 지 확인한다. toBe 완전한 일치... 래퍼런스함수 원시함수 둘다 비교할수 있으며 주소까지 확인한다. toEqual 값의 일치... 래퍼런스함수 원시함수 둘다 비교할수 있으면 값만 같은지 확인한다.
런타임(runtime)에 대해서.. 런타임이란 프로그래밍 언어가 구동되는 환경입니다. 런타임 = 어떤 프로그래밍 언어가 동작할 수 있는 프로그램 = 컴퓨터 과학에서 컴퓨터 프로그램이 실행되고 있는 동안의 동작을 말한다. 자바스크립트를 활용해 코드를 적고 코드가 실행되는 곳이 바로 런타임 이다. 자바스크립트 런타임은 node.js라는 것이 존재한다. 자바를 예로들면 이클립스가 런타임이며 파이썬을 예로들면 atom이 런타임이다.
[javascript] 프로그래머스 - 큰 수 만들기 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 function solution(number, k) { let StNum = String(number); let num_length = StNum.length; let stack = []; let count = 0; for(let i=0;i
[javascript] 프로그래머스 - 기능개발 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 //순차적으로 배포가 되어야한다.. function solution(progresses, speeds) { let answer = []; while(progresses.length!==0&&speeds.length!==0){ let cnt = 0; //일 작업량 넣기 for(let i=0;i0){ answer.push(cnt); } } return answer; } Colored by Color Scripter cs 새롭게 알게된점 큐나 스택을 사용할때는 인덱스 설정을 조심해야한다.