분류 전체보기

· JavaScript
JavaScript[3] - 데이터 타입과 연산자 데이터타입 데이터 타입에는 크게 원시 타입(Primitive type)과 참조 타입(Reference type)이 있습니다. 원시 타입(Primitive type) 숫자(Number) : 정수 및 실수형 숫자를 표현하는 자료형 문자열(String) : 문자열을 표현하는 자료형 Template Literal(템플릿 리터럴) => Backtick(' ')을 사용하고 $와 중괄호 { }로 표기합니다. 불리언(Boolean) : 참(true) 또는 거짓(false) 값 null : 값이 없거나 비어 있음을 나타내는 특수한 값 ( object ) 변수의 값이 없음을 의도적으로 표현할 때 사용 undefined : 값이 정의(할당)되지 않음을 나타내는 특수한 값 (..
· JavaScript
JavaScript[2] - JavaScript 기본 문법과 호이스팅(hoisting) 들여 쓰기와 코드 블록 JavaScript는 2칸 들여 쓰기를 사용합니다. 블록(Block)은 if, for, 함수에서 중괄호 { } 내부를 뜻합니다. 중괄호를 통해 코드 블록을 구분합니다. if (isClean) { // 중괄호로 코드 블럭 구분 console.log('clean!') // 2칸 들여쓰기 } 세미콜론 JavaScript는 세미콜론 ( ; )을 선택적으로 사용 가능 합니다. 일관성 있게 회사 또는 팀의 스타일 가이드에 맞춰서 사용하면 됩니다. console.log('hello') console.log('javascript'); 변수와 식별자 식별자(identifier) 변수를 구분할 수 있는 변수명을 ..
· JavaScript
JavaScript[1] - JavaScript와 EMCAScript JavaScript 란? JavaScript는 웹 페이지를 동적으로 만들기 위한 언어 클라이언트 측 웹(브라우저)에서 실행 웹 페이지 동작을 제어 클라이언트? 서버로부터 정보를 받아와 사용자의 컴퓨터에서 실행되는 애플리케이션 또는 프로그램 V8 엔진 대표적인 자바스크립트 엔진으로는 구글 크롬의 V8 엔진 자바스크립트 코드를 빠르게 실행할 수 있도록 최적화되어 있습니다. 자바스크립트 엔진은 코드를 실행하기 전에 먼저 파싱 하여 추상 구문 트리(Abstract Syntax Tree)로 변환한 뒤, 이를 바탕으로 코드를 실행합니다. 추상 구문 트리?? 더보기 추상 구문 트리 추상 구문 트리는 프로그래밍 언어의 코드를 구성하는 문법 요소들을 ..
위상정렬(Topology) 위상정렬은 순서가 있는 작업을 수행해야 할 때 또는 순서를 결정하는 알고리즘입니다. 즉 노드 간의 선후 관계를 고려하여 정렬하는 알고리즘이라고 할 수 있습니다. 1. 진입차수 노드 간의 선후 관계를 고려해야 하는 점에서 그래프 알고리즘으로 생각할 수 있다. 선후 관계를 고려한다, 즉 방향성을 거스르지 않도록 순서를 나열하는 방법입니다. 진입차수는 자기 자신으로 연결되어 들어오는 간선의 개수이다. 그림에서 보면 선형대수 박스의 진입차수는 0, 머신러닝 박스의 진입차수는 1, 딥러닝 박스의 진입차수는 2 그림을 보면 머신러닝을 수강하려면 선형대수를 우선 수강해야 한다. 또한 머신러닝을 수강하면 딥러닝을 수강할 수 있지만 선형대수만 거쳐도 곧바로 딥러닝을 수강할 수 있다. 2. 위상..
플로이드 워셜 플로이드 워셜은 다익스트라와 마찬가지로 최단 경로를 구하는 알고리즘입니다. 1. 다익스트라와 플로이드 워셜 다익스트라와의 큰 차이점은 플로이드 워셜은 모든 노드에서 도착할 수 있는 모든 노드의 최소거리를 구하는 알고리즘, 다익스트라는 특정 노드에서 이동할 수 있는 모든 노드에 대해 최소거리를 구하는 알고리즘입니다. (다익스트라는 양의 가중치만 허용됩니다) 즉, 다익스트라는 부산에서 서울 대구까지의 최소 거리를 구하는 알고리즘이고 플로이드 워셜은 부산-대구, 부산-서울, 서울-대구의 거리를 한 번에 계산합니다 2. 플로이드 워셜 점화식 모든 노드별로 특정 노드를 거쳐 다른 노드로 가는 최단 경로를 저장하기 위해 2차원 LIST를 사용합니다. 따라서 전체 노드가 N개일 때, 알고리즘의 시간 복..
백트래킹 단어 그대로 자식 노드의 유망성을 판단한 뒤 해당 노드가 유망하지 않다면 부모 노드로 돌아가 다른 자식 노드를 찾는 방법이다. 1. DFS와 백트래킹 그래프 탐색 기법 중 하나인 DFS와 백트레킹의 차이를 먼저 알아보기 위해 예시를 한번 보자. 0
퀵 정렬 퀵 정렬... 말 그대로 가장 빠른 정렬 알고리즘입니다. 바로 알아봅시다. 1. 퀵 정렬 동작 과정 퀵 정렬 함수 코드 def quick_sort(lst): def sort(low, high): if high
문자열 게임 1. 문제 설명 문제는 간단합니다. W(지워야 하는) 문자열이 주어지고 그 대상 S 문자열이 주어집니다. 그다음 N의 숫자가 주어지며 밑으로 N 개의 줄에는 명령어가 주어집니다. 명령어 L 은 왼쪽에서 부터 탐색해 처음 등장하는 W 문자열을 제거합니다. 명령어 R 은 오른쪽에서 부터 탐색해 처음 등장하는 W 문자열을 제거합니다. 최종적으로 모든 명령을 수행했을 때 문자열 S에 남은 문자열 W 가 있다면 게임에서 패배하게 됩니다. 출력은 순서대로 성공한 명령어의 수, 남은 문자열 S, 승패 문구입니다. 승리한 경우 Perfect!, 패배한 경우 You lose! 를 출력합니다. 2. 접근과 풀이 이 문제는 결론부터 말하자면 입니다. 그럼 스택으로 접근해 봅시다! aaaaabbbb라는 문자열 S..
고민하는만두
'분류 전체보기' 카테고리의 글 목록 (9 Page)