본문 바로가기

🌼 TIL

🌱 11/15 내배캠 React 12일차

🐜 오늘 할 일

  • JavaScript Deep dive 책 필사하기 (아침 8시)
  • 알고리즘 강의 수강 
  • Git,github 강의
  • JavaScript 강의
  • 프로젝트 관련 기술 배우기 
  • 프로그래머스 문제 2개 풀고, 설명 (7조 스터디)

📆    계획표

시간 내용 결과
8:00~8:40 Js 아침 필사 ☀️
9:00~11:00 알고리즘 강의
11:00~18:00 Js 강의 ☀️
19:00~21:00 Git,github 강의 ☀️
21:00~22:00 프로그래머스 문제 풀이, 해설 (스터디)  ☁️
22:00~23:00 프로젝트 관련 기술 및 til 정리(벨로그)  

 

 


 

👩🏼‍🌾   오늘의 줍줍 " " 🌾🌾 -  풍년이다~!

[ 알고리즘 ]

 

Array (배열) :  여러 원소를 하나의 묶음으로 관리하고 각 원소간에 순서(order)가 존재하는 인덱스(lndex)를 통해 접근하는 리스트.

배열은 특정 크기만큼 연속된 메모리 공간에 데이터를 저장하는 자료구조

 

Linked list (연결 리스트) : 연속된 메모리 공간에 저장되어 있지 않고, 각각의 데이터가 메모리 공간 상에 고유한 노드로 존재한다.

리스트는 크기가 정해지지 않은 데이터의 공간, 연결고리로 이어주기만 하면, 자유자재로 크기가 늘어날 수 있다. 

 

Array vs Linkes List 차이점

- Array는 연속된 메모리 공간에 존재한다 / Linked Lists는 메모리 상에서 떨어져 있는 데이터들이 앞의 데이터와 뒤의 데이터를 기억하는 형태로 존재한다.

- Array에 저장되어 있는 데이터를 조회할 때는 O(1)로 가능하다 / Linked Lis는 O(N)이 소요된다.

- Array에 데이터 추가 및 삭제할 때는 O(N)이 소요된다 / Linked List는 O(1)로 가능하다

- Array는 컴파일 과정에서 메모리가 할당되는 정적 메모리 할당이다 / Linked List는 런타임 환경에서 메모리가 할당되는 동적 메모리할당이다

- Array는 Stack영역에 메모리 할당이 된다 / Linked List 는 Heap 영역에 할당된다.

 

Array vs Linkes List 비교표

Class

: 분류, 집합, 같은 속성과 기능을 가진 객체(세상에 존재하는 유일무이한 사물)를 총칭하는 개념

클래스를 이용하면 같은 속성과 기능을 가진 객체들을 묶어서 정의할 수 있다. 

 

예시)

Class Person :
	pass # 여기서 pass는 안에 아무런 내용이 없다는 의미이다!
    
person_1 = Person()
print(person_1) # <__main__.Person object at 0x1090c879d>
person_2 = Person()
print(person_2) # <__main__.Person object at 0xjh293830x>

Class의 생성자(Constructor)

: 객체를 생성할 때 데이터를 넣어주거나, 내부적으로 원하는 행동을 싱행하게 할 수 있다.

파이썬에서의 생성자 함수이름

:  __init__으로 고정되어 있다! 무조건 생성자 이름의 함수는 __init__이다!!

 

 


[ JavaScript ] 다시다시 복습

 

함수

: 특정 작업을 수행하는 코드의 집

function 함수명(매개변수...) {
	코드
    return 반환값
}

class / constructor(생성자) / this와 property(속성):객체의 속성

 

함수의 호출

const 변수명 = 선언한 함수명(매개변수들...)

Method 매소드 

 

 

 

 


[ Programmers 0단계 문제 (javascript) ]

입문 사칙연산, 조건문, 배열

분수의 덧셈

풀이

function solution(denum1, num1, denum2, num2) {
    var answer = [];
    const denum = denum1 * num2 + denum2 * num1;
    const num = num1 * num2;
    
    let min;
    if(denum < num) {
        min = denum;
    } else {
        min = num;
    }
    
    while(true) {
        if(denum % min === 0){
            if(num % min === 0) {
                return [denum / min, num / min ] ; 
            }
        }
        min = min -1
    }
  
}

a4용지에 미리 적어가며 문제를 풀어보자. 분모와 분자를 나누어 계산하는 법을 코드값으로 변환해야한다. 조건과 반복문을 활용하라.