목록전체 글 (169)
하다보니
// Q1. make a string out of an array { const fruits = ["apple", "banana", "orange"]; //구분자가 있어도 되고 없어도 된다.기본은 ,이다. //배열의 모든 item을 string으로 나타내준다. let result = fruits.join("^"); console.log(result); //apple^banana^orange } // Q2. make an array out of a string //문자열 배열로 만들기 //seperator와 limit을 인자로 받을 수 있다. //seperator는 필수, limit은 선택 { const fruits = "🍎, 🥝, 🍌, 🍒"; result = fruits.split(",", 2); con..
#include using namespace std; int main() { string s; cin >> s; list L; for (auto c : s) L.push_back(c); auto cur = L.end(); int q; cin >> q; while (q--) { char n; cin >> n; if (n == 'P') { char m; cin >> m; L.insert(cur, m); } else if (n == 'L') { if (cur != L.begin()) { cur--; } } else if (n == 'D') { if (cur != L.end()) { cur++; } } else { if (cur != L.begin()) { cur--; cur = L.erase(cur); } }..
인터페이스란 상호작용하는 곳이다. 우리가 쓰는 프로그램들은 프로그램 상의 어떤 인터페이스를 통해서 컴퓨터 시스템의 자원들을 사용하고 네트워크와 통신하며 우리가 쓰는 컴퓨터에 아이콘을 띄우기도 한다. 서로 다른 두 개의 시스템, 장치 사이에서 정보나 신호를 주고받는 경우의 접점이나 경계면이다. 즉, 사용자가 기기를 쉽게 동작시키는데 도움을 주는 시스템을 의미한다. API는 쉽게 프로그램간 커뮤니케이션을 담당하는 기능이다. 한 프로그램이 다른 프로그램을 이용할 때 쓰는 인터페이스로 기계가 이해하기 쉽게 입출력이 데이터로 이루어진다. 해당 프로그램의 기능을 다른 프로그램이 쓸 수 있게 하는 것이 목적. 애플리케이션을 서로 연결하여 서로 통신할 수 있다는 것이 핵심이다. 라이브러리는 소프트 웨어를 개발할 때 사..
// Objects // one of the JavaScript's data types. // a collection of related data and/or functionality. // Nearly all objects in JavaScript are instances of Object // object = { key : value }; 키와 값의 집합체이다. //1.Literals and properties const obj1 = {}; // 'object literal' syntax const obj2 = new Object(); // 'object constructor' syntax - new로 정의하면 object에서 정의된 constructor 호출 function print(person)..
자료구조. 어떤 방식으로 데이터를 담느냐에 따라 타입이 다양하다. 오브젝트와 자료구조의 차이. 토끼와 당근은 오브젝트. 서로 연관된 특징과 행동을 묶어놓는 것을 말한다. 비슷한 타입의 오브젝트들을 묶어 놓는 것을 자료구조라고 한다. 동일한 타입의 오브젝트만 담을 수 있다. 자바스크립트는 타입이 동적으로 정의가 되기 때문에 다양한 타입을 담을 수 있다. 하지만 이러한 방식을 좋지 않다. 한 배열 안에는 동일한 타입을 넣는다. 인덱스로 접근해서 삽입과 삭제가 편하다. 1. 배열 - 배열의 선언과 원소 검색 // 1. Declaration const arr1 = new Array(); const arr2 = [1, 2]; // 2. Index position const fruits = ['🍎', '🍌']; c..
음수를 표현하고 안하고의 차이이다. signed : 부호를 가지는 값(양수, 음수의 구별O) unsigned : 부호를 가지지 않는 값(오직 양수) signed는 음수의 표현까지 포함을 하기 때문에 2의 보수 체계를 사용하고 있고 부호를 구별하는 부호 비트인 MSB(most significant bit)가 필요하다. (MSB가 0이면 양수, 1이면 음수) unsigned는 저런 부호 비트가 없기 때문에 음수는 표현 못하지만 그만큼의 양수의 범위를 두 배로 더 늘리는 역할을 하게 된다. 예를 들면 signed char는 -128~127의 범위 표현이 가능하게 되고 unsigned char는 0~255범위 표현이 가능하게 된다.
클래스는 연관있는 데이터를 묶어놓는 container같은 것. 클래스 안에는 속성(fields)와 행동(methods)가 있다. 클래스는 fields와 methods가 묶여 있는 것. 종종 클래스 안에 fields만 들어있는 경우가 있고 이것을 데이터 클래스라고 한다. 수많은 물체와 사물들을 클래스, 오브젝트로 정의해서 프로그래밍 하는 것이 편하고 유연하게 프로그래밍이 가능하다. 구현해야할 기능들을 객체로 잘 정의해서 만들 수 있는 개발자. 클래스는 틀을 말한다. template. 클래스 자체에는 값이 들어있지 않다. 한 번만 선언한다. 클래스를 사용하여 새로운 인스턴스를 생성한 것을 object라고 한다.object는 여러번 만들 수 있다. 클래스는 정의만 한 것이어서 실제로 메모리에 올라가지는 않지만..
덱은 Restricted Structure의 끝판왕 같은 느낌의 자료구조이다. 양쪽 끝에서 삽입과 삭제가 전부 가능하다. 참고로 자료구조의 덱은 deque이고 Double Ended Queue라는 뜻을 가지고 있다. 덱은 양쪽 끝에서 삽입과 삭제가 전부 가능한 자료구조이니 스택과 큐를 덱의 특수한 예시라고 생각해도 좋다. 덱의 성질 원소의 추가가 O(1) 원소의 제거가 O(1) 제일 앞/뒤의 원소 확인이 O(1) 제일 앞/뒤가 아닌 나머지 원소들의 확인/변경이 원칙적으로 불가능 STL deque에서는 인덱스로 원소에 접근할 수 있다. STL stack, queue에서 불가능했던 것을 생각하면 꽤 독특한 일이다. 덱도 스택이나 큐처럼 배열 혹은 연결 리스트 둘 다를 가지고 구현할 수 있지만 배열을 이용하는..
절차적인 언어에서는 함수가 프로그램에서 굉장히 중요한 기능을 담당한다. 그런데 자바스크립트에는 class가 추가되어서 object oriented programming language가 아닌가??!!!!!? No. 이 클래스도 자바의 class처럼 pure한 object orient가 아니고 프로토타입을 베이스로 한 가짜의 object oriented이다. 따라서 JavaScript도 절차 지향 언어 중 하나로 볼 수 있다. function이 중요한 역할을 한다. function declaration function을 sub-program이라고도 한다. input을 받아 처리 후 output을 리턴하는 것이다. function은 한가지 일을 수행해야하고 동사형태로, command형태로 이름을 지정해야한다..
#include using namespace std; int num[100000]; int main() { ios::sync_with_stdio(0); cin.tie(0); int n, a, x, cnt = 0; cin >> n; for (int i = 0; i > a; num[i] = a; } cin >> x; for (int i = 0; i n; for (int i = 0; i > arr[i]; exist[arr[i]] = true; } cin >> x; for (int ..