전체 글
개인 기록용 웹 사이트
-
배열을 이용한 다항식 표현 다항식의 일반적인 형태는 다음과 같습니다. 프로그램에서 다항식을 처리하려면 다항식을 위한 자료구조가 필요합니다. 배열을 이용한 다항식의 표현 방법에는 2가지가 있습니다. >> (1) 모든 항을 저장한다. >> (2) 0이 아닌 항만을 저장한다. (1) 모든 항을 저장하는 방식 #define MAX_DEGREE 101 // (다항식의 최대차수 + 1) 101 #include typedef struct { int degree; //최고차항의 지수 float coef[MAX_DEGREE]; }polynomial; polynomial a = { 5,{10,0,0,0,6,3} }; //10X^5+6X+3 polynomial poly_add1(polynomial A, polynomial ..
[자료구조] 배열을 이용한 다항식 표현1배열을 이용한 다항식 표현 다항식의 일반적인 형태는 다음과 같습니다. 프로그램에서 다항식을 처리하려면 다항식을 위한 자료구조가 필요합니다. 배열을 이용한 다항식의 표현 방법에는 2가지가 있습니다. >> (1) 모든 항을 저장한다. >> (2) 0이 아닌 항만을 저장한다. (1) 모든 항을 저장하는 방식 #define MAX_DEGREE 101 // (다항식의 최대차수 + 1) 101 #include typedef struct { int degree; //최고차항의 지수 float coef[MAX_DEGREE]; }polynomial; polynomial a = { 5,{10,0,0,0,6,3} }; //10X^5+6X+3 polynomial poly_add1(polynomial A, polynomial ..
2021.03.21 -
배열과 구조체의 활용 배열 >> 같은 자료형의 변수들이 연속된 메모리 공간을 차지하는 자료구조 >> 인덱스와 인덱스에 대응하는 데이터들로 이루어진 자료구조 >> 자료형이 같은 데이터들을 하나로 묶는 방법 구조체 >> 하나 이상의 변수를 묶어 그룹화하는 사용자 정의 자료형 >> 자료형이 다른 데이터들을 하나로 묶는 방법 배열과 구조체 자료구조의 활용 문제들입니다. 문제를 먼저 풀어보시고 풀이를 확인해보시기 바랍니다. 1. 크기가 8인 배열 pow[]를 선언하고 여기에 3의 제곱 값들을 저장해보자. 즉 배열의 첫 번째 요소에는 3^0을 저장하고 두 번째 요소에는 3^1값을 저장한다. 마지막 요소에는 3^7값을 저장한다. for 루프를 이용하여 pow[] 배열의 전체 요소의 값을 출력하는 프로그램을 작성하라...
[자료구조] 배열과 구조체의 활용배열과 구조체의 활용 배열 >> 같은 자료형의 변수들이 연속된 메모리 공간을 차지하는 자료구조 >> 인덱스와 인덱스에 대응하는 데이터들로 이루어진 자료구조 >> 자료형이 같은 데이터들을 하나로 묶는 방법 구조체 >> 하나 이상의 변수를 묶어 그룹화하는 사용자 정의 자료형 >> 자료형이 다른 데이터들을 하나로 묶는 방법 배열과 구조체 자료구조의 활용 문제들입니다. 문제를 먼저 풀어보시고 풀이를 확인해보시기 바랍니다. 1. 크기가 8인 배열 pow[]를 선언하고 여기에 3의 제곱 값들을 저장해보자. 즉 배열의 첫 번째 요소에는 3^0을 저장하고 두 번째 요소에는 3^1값을 저장한다. 마지막 요소에는 3^7값을 저장한다. for 루프를 이용하여 pow[] 배열의 전체 요소의 값을 출력하는 프로그램을 작성하라...
2021.03.19 -
1. 순환 알고리즘 같은 프로그램에 대해서 순환알고리즘을 사용하는 경우와 반복알고리즘을 사용하는 경우가 있습니다. 어떤 프로그램이냐에 따라 두 알고리즘의 효율성이 다르게 작용합니다. 두 알고리즘의 차이를 비교해가며 코드를 먼저 풀이해보시고 설명을 확인해보시기 바랍니다. 1-1. 다음을 계산하는 순환 함수를 작성하라 > 1 + 2 + 3 + … + n int factorial (int n) { if ( n == 1 ) return 1; else if ( n >= 2 ) return ( n + factorial (n - 1) ); } 함수 설명 더보기 (1) factorial 함수에 n을 매개변수로 보냅니다 (2) n이 1이면 1을 return합니다 (3) n이 1이 아니고 2와 같거나 크면 n을 retur..
[자료구조] 순환 알고리즘과 반복 알고리즘 비교1. 순환 알고리즘 같은 프로그램에 대해서 순환알고리즘을 사용하는 경우와 반복알고리즘을 사용하는 경우가 있습니다. 어떤 프로그램이냐에 따라 두 알고리즘의 효율성이 다르게 작용합니다. 두 알고리즘의 차이를 비교해가며 코드를 먼저 풀이해보시고 설명을 확인해보시기 바랍니다. 1-1. 다음을 계산하는 순환 함수를 작성하라 > 1 + 2 + 3 + … + n int factorial (int n) { if ( n == 1 ) return 1; else if ( n >= 2 ) return ( n + factorial (n - 1) ); } 함수 설명 더보기 (1) factorial 함수에 n을 매개변수로 보냅니다 (2) n이 1이면 1을 return합니다 (3) n이 1이 아니고 2와 같거나 크면 n을 retur..
2021.03.19 -
순환 알고리즘 원리 순환알고리즘의 원리와 관련 문제입니다. 1. 다음 함수를 sub(7)로 호출하면 반환값은? #include int sub(int n) { if (n < 0) return 0; return n + sub(n - 3); } int main(void) { printf("%d", sub(7)); return 0; } 함수 설명 더보기 sub(7) // 반환형이 정수형이고 매개변수로 정수형을 받는 sub() 함수에 정수 7을 매개변수로 보냅니다 return 7 + sub(4) // if문에 의해 n의 값 정수 7은 조건에 부합하지 않으므로 그대로 7을 return함과 동시에 7에서 3을 뺀 정수 4를 순환형식으로 다시 호출합니다 return 7 + 4 + sub(1) // if문에 의해 n의 ..
[자료구조] 순환 알고리즘 원리순환 알고리즘 원리 순환알고리즘의 원리와 관련 문제입니다. 1. 다음 함수를 sub(7)로 호출하면 반환값은? #include int sub(int n) { if (n < 0) return 0; return n + sub(n - 3); } int main(void) { printf("%d", sub(7)); return 0; } 함수 설명 더보기 sub(7) // 반환형이 정수형이고 매개변수로 정수형을 받는 sub() 함수에 정수 7을 매개변수로 보냅니다 return 7 + sub(4) // if문에 의해 n의 값 정수 7은 조건에 부합하지 않으므로 그대로 7을 return함과 동시에 7에서 3을 뺀 정수 4를 순환형식으로 다시 호출합니다 return 7 + 4 + sub(1) // if문에 의해 n의 ..
2021.03.13 -
생성자 (Constructor) function Info(name, age, birth) { this.name = name; this.age = age; this.birth = birth; } let prototype = { type: "human", }; Info.prototype = prototype; const james = new Info("james", 25, 11); console.log(james); // Info {name: "james", age: 25, birth: 11} 생성자는 함수이다. 다만, 구분을 위해 함수명 첫글자를 대문자로 약속한다. 생성자 함수는 this가 사용되며 "new 함수명" 으로 사용한다. Factory 형식과 유사하며 console에서 함수명이 결과 값 앞에 붙..
[JavaScript] 생성자(Constructor)에 관한 개념생성자 (Constructor) function Info(name, age, birth) { this.name = name; this.age = age; this.birth = birth; } let prototype = { type: "human", }; Info.prototype = prototype; const james = new Info("james", 25, 11); console.log(james); // Info {name: "james", age: 25, birth: 11} 생성자는 함수이다. 다만, 구분을 위해 함수명 첫글자를 대문자로 약속한다. 생성자 함수는 this가 사용되며 "new 함수명" 으로 사용한다. Factory 형식과 유사하며 console에서 함수명이 결과 값 앞에 붙..
2020.12.28 -
call by value란? const func = (param) => { param.a = 10; console.log(param); // 10 }; const obj = { a: 5 }; func(obj); console.log(obj); // 10 // 쉽게 말하자면, const obj = { a: 5 }; let param = obj // 이런 형식으로 객체에 객체가 대입되어 참조 관계가 된 것. 먼저 자바스크립트, 객체 사이의 참조 관계에 관한 이해가 우선이다. 위 코드에서 객체인 obj는 func 함수가 작동되어 매개변수 param의 값에 대입이 되어 obj와 param은 참조 관계가 되었다. func 가 작동하면서 param의 a값을 변경하면 참조 관계에 있는 obj의 a값도 바뀌게 되어 모..
[JavaScript] 값에 의한 전달 Call by valuecall by value란? const func = (param) => { param.a = 10; console.log(param); // 10 }; const obj = { a: 5 }; func(obj); console.log(obj); // 10 // 쉽게 말하자면, const obj = { a: 5 }; let param = obj // 이런 형식으로 객체에 객체가 대입되어 참조 관계가 된 것. 먼저 자바스크립트, 객체 사이의 참조 관계에 관한 이해가 우선이다. 위 코드에서 객체인 obj는 func 함수가 작동되어 매개변수 param의 값에 대입이 되어 obj와 param은 참조 관계가 되었다. func 가 작동하면서 param의 a값을 변경하면 참조 관계에 있는 obj의 a값도 바뀌게 되어 모..
2020.12.28 -
코드를 작성함에 있어서 중요한 것 중 하나는 불필요한 중복을 제어하는 일이다. 중복을 제어하는 방법에는 두 가지 방식이 있다. 코드의 중복 제어하기 (1) : Factory 형식 const factory = (name, age, birth) => { return { name: name, age: age, birth: birth, type: "human", }; }; const who = factory("james", 25, 11); console.log(who) // {name: "james", age: 25, birth: 11, type: "human"} 첫번째로 factory 형식의 함수를 만들어 중복을 해결하는 경우가 있다. 여러 사람의 정보에 관한 데이터를 만들어낼 때 위와 같이 factory 함..
[JavaScript] 코드의 중복을 제어하는 여러가지 방법코드를 작성함에 있어서 중요한 것 중 하나는 불필요한 중복을 제어하는 일이다. 중복을 제어하는 방법에는 두 가지 방식이 있다. 코드의 중복 제어하기 (1) : Factory 형식 const factory = (name, age, birth) => { return { name: name, age: age, birth: birth, type: "human", }; }; const who = factory("james", 25, 11); console.log(who) // {name: "james", age: 25, birth: 11, type: "human"} 첫번째로 factory 형식의 함수를 만들어 중복을 해결하는 경우가 있다. 여러 사람의 정보에 관한 데이터를 만들어낼 때 위와 같이 factory 함..
2020.12.27 -
자바스크립트에서 객체가 들어있는 어떤 변수에 객체를 대입하면 두 변수는 참조 관계가 이루어진다. let obj = { a: 1, b: 2, c: 3 } let obj2 = { a: 1, b: 2, c: 3 }; console.log(obj === obj2) // false 우선 기본적으로 obj 와 obj2 는 각각 들어있는 객체의 데이터가 같아도 두 배열을 비교 연산시 false 값을 출력한다. let obj2; let obj = { a: 1, b: 2, c: 3 }; let obj2 = obj // 참조 관계가 이루어짐. console.log(obj === obj2) // true obj2.a = 10; console.log(obj); // { a: 10, b: 2, c: 3 ) 그런데 obj2의 ..
[JavaScript] 객체 간 참조 관계 및 해제 방법자바스크립트에서 객체가 들어있는 어떤 변수에 객체를 대입하면 두 변수는 참조 관계가 이루어진다. let obj = { a: 1, b: 2, c: 3 } let obj2 = { a: 1, b: 2, c: 3 }; console.log(obj === obj2) // false 우선 기본적으로 obj 와 obj2 는 각각 들어있는 객체의 데이터가 같아도 두 배열을 비교 연산시 false 값을 출력한다. let obj2; let obj = { a: 1, b: 2, c: 3 }; let obj2 = obj // 참조 관계가 이루어짐. console.log(obj === obj2) // true obj2.a = 10; console.log(obj); // { a: 10, b: 2, c: 3 ) 그런데 obj2의 ..
2020.12.25 -
ES6 변수 선언과 데이터 전달 방식 ES6에서의 새로운 변수 선언. 위 코드는 ES6, 아래 코드는 이전 ECMAScript 방식으로 작성된 코드. 모두 같은 결과를 불러온다. 기존 방식으로 작성된 코드가 한눈에 잘 들어와 보일 수 있으나 query안에 있는 데이터를 추가적으로 불러올 경우 기존 방식으로는 중복 작성해야 하는 번거로움이 있지만 ES6로 작성할 경우 아래와 같이 불러올 데이터를 추가하기만 하면 된다.
[JavaScript] ES6 - 변수 선언 및 데이터 전달ES6 변수 선언과 데이터 전달 방식 ES6에서의 새로운 변수 선언. 위 코드는 ES6, 아래 코드는 이전 ECMAScript 방식으로 작성된 코드. 모두 같은 결과를 불러온다. 기존 방식으로 작성된 코드가 한눈에 잘 들어와 보일 수 있으나 query안에 있는 데이터를 추가적으로 불러올 경우 기존 방식으로는 중복 작성해야 하는 번거로움이 있지만 ES6로 작성할 경우 아래와 같이 불러올 데이터를 추가하기만 하면 된다.
2020.11.19 -
pug > html을 좀더 간편하고 멋지게 만들어주는 view engine. > 설치 : npm install pug > 설정 : app.set("view engine", "pug") :> view engine 설정의 default값은 undefined이며 pug 파일 형식으로 바꿔주는 과정임. :> "pug" 는 확장자를 의미. > 들여쓰기를 한 후 작성 시 해당 태그는 children을 의미. > block content : 해당 자리에 외부의 코드가 들어갈것임을 의미. > extends 폴더/파일명 : main.pug 파일(의 레이아웃)을 이 파일에 확장/적용한다는 의미. > block content 입력 후 밑에 내용을 작성 : main.pug의 block content 부분에 들어갈 것임. > ..
[pug] pug express template engine 기본 사용법pug > html을 좀더 간편하고 멋지게 만들어주는 view engine. > 설치 : npm install pug > 설정 : app.set("view engine", "pug") :> view engine 설정의 default값은 undefined이며 pug 파일 형식으로 바꿔주는 과정임. :> "pug" 는 확장자를 의미. > 들여쓰기를 한 후 작성 시 해당 태그는 children을 의미. > block content : 해당 자리에 외부의 코드가 들어갈것임을 의미. > extends 폴더/파일명 : main.pug 파일(의 레이아웃)을 이 파일에 확장/적용한다는 의미. > block content 입력 후 밑에 내용을 작성 : main.pug의 block content 부분에 들어갈 것임. > ..
2020.11.15 -
Prettier 적용 방법 Visual Studio Code에서는 사용자 편의를 위해 코드의 줄 간격이나 행을 자동으로 깔끔하게 정리해주는 확장프로그램이 존재한다. 왼쪽 사이드바에서 EXTENSIONS 아이콘을 클릭한 후 prettier 를 검색하게 되면 가장 위에 뜨는 걸 선택. 이미 설치되어 있는 경우 위와 같이 표시되어 있지만 설치가 안된 경우 install 버튼이 활성화 된다. 설치하면 완료. 에디터 밑부분에 Prettier: ✔ 표시가 되어있다면 활성화된 것. 대부분의 프로그래밍 언어에서 사용 가능하고 pug 파일에는 적용 불가능하다. Prettier 적용 안될 경우 해결방법 1. Format on Save 확인 > vscode 설정에서 format on save를 입력하고 나오는 설정에 체크되..
[vscode] Prettier 적용방법, 적용 안되는 경우 해결방법Prettier 적용 방법 Visual Studio Code에서는 사용자 편의를 위해 코드의 줄 간격이나 행을 자동으로 깔끔하게 정리해주는 확장프로그램이 존재한다. 왼쪽 사이드바에서 EXTENSIONS 아이콘을 클릭한 후 prettier 를 검색하게 되면 가장 위에 뜨는 걸 선택. 이미 설치되어 있는 경우 위와 같이 표시되어 있지만 설치가 안된 경우 install 버튼이 활성화 된다. 설치하면 완료. 에디터 밑부분에 Prettier: ✔ 표시가 되어있다면 활성화된 것. 대부분의 프로그래밍 언어에서 사용 가능하고 pug 파일에는 적용 불가능하다. Prettier 적용 안될 경우 해결방법 1. Format on Save 확인 > vscode 설정에서 format on save를 입력하고 나오는 설정에 체크되..
2020.11.14 -
Arrow Function ECMAScript 6 버전에서는 함수의 정의을 기존과 다른 방식으로 작성해볼 수 있다. 위는 이전 버전에서의 입력 방식, 아래는 ES6의 입력 방식이다. 두 형식 모두 동일한 반환값을 가지며 아래와 같은 방식은 내재된 반환값(return)을 가지게 되는 것으로 입력된다. 상황에 따라 내재된 반환값으로 작성하면 안되는 경우도 존재. 이런 경우 위와 같이 중괄호를 넣어 작성한다.
[Javascript] ES6 - Arrow FunctionArrow Function ECMAScript 6 버전에서는 함수의 정의을 기존과 다른 방식으로 작성해볼 수 있다. 위는 이전 버전에서의 입력 방식, 아래는 ES6의 입력 방식이다. 두 형식 모두 동일한 반환값을 가지며 아래와 같은 방식은 내재된 반환값(return)을 가지게 되는 것으로 입력된다. 상황에 따라 내재된 반환값으로 작성하면 안되는 경우도 존재. 이런 경우 위와 같이 중괄호를 넣어 작성한다.
2020.11.09