본문 바로가기

전체 글233

구조체(struct) #include //사용자 정의 자료형 typedef struct _tagMyST //typedef = type을 재정의함 { int a; float f; }MYST; typedef struct _tagBig { MYST k; //내가 만든 자료형으로 다른 구조체에 선언 가능 int i; char c; }BIG; int main(void) { MYST t; t.a = 10; t.f = 10.2121f; int iSize = sizeof(MYST); // int + float = 8byte return 0; } 2022. 7. 18.
피보나치 수열 첫 번째 항의 값이 0이고 두번째 항의 값이 1일때, 이후의 항들은 이전의 두항을 더한 값으로 이루어지는 수열 ex) 0, 1, 1, 2, 3, 5, 8, 13, 21, 34.... 제 1항 + 제 2항 = 제 3항 0 + 1 = 1 2022. 7. 18.
재귀함수(Recursive Function) 재귀함수(Recursive Function) = 자기 자신을 호출하는 함수 "Recursive" = 반복되는 장점 : 가독성, 구현의 용이 단점 : 성능이 떨어짐 ( 함수안에 남아있는 스택을 변수처럼 활용하기때문) 팩토리얼 구현 #include //재귀함수 //가독성, 구현의 용이 int Factorial(int count); int main(void) { return 0; } int Factorial(int count) { if (count == 1) { return 1; } return count * Factorial(count - 1); } 피보나치 수열 #include int Fibonacci(int count); int main(void) { int Value = Fibonacci(10); re.. 2022. 7. 18.
Visual Studio 단축키 #include int main() { int a = 300; printf("output"); return 0; } // 단축키 // 지정한 구문 주석 Ctrl + k, c // 지정한 구문 주석 해제 Ctrl + k, u // Alt Drag 필요한 영역만 // 디버깅 // 디버깅 시작 : F5 // 다음 중단점까지 코드 실행 // 중단점 생성 및 해제 : F9 // 디버깅 중, 구문 수행 : F10 // 디버깅 중, 구문 수행(함수 진입) : F11 // 디버깅 중, 디버깅 종료하기 : shift + F5 // 함수 원형 보기 : ctrl + shift + space // 해당 함수로 이동 : F12 2022. 7. 15.
변수 #include //변수 = 지역변수, 전역변수 ,정적변수 ,외부변수 //전역변수 int global = 0; int add(int a, int b); //함수선언 int main(void) { //지역변수 int i = 0 ; int a = 30; int b = 20; int c = add(a, b); printf("%d ", c); //괄호 안에 선언된 변수 (함수, 지역) { //변수명 규칙 int i = 100; i; //i = 100; } i; //위에 선언된 것으로 생각 i = 0; return 0; } //함수 int add(int a, int b) { return a+b; } 2022. 7. 14.
비트 연산자 //비트연산자 //쉬프트 //전처리 define //전처리 = 본 프로그래밍 소스코드 작성 및 컴파일을 하기 전에 하는 작업들을 일컫습니다. #define HUNGRY 1 //define을 사용하면 좋은점 #define THIRSTY 2 //1. 가독성 #define TIRED 3//2. 유지보수 #include int main(void) { unsigned char byte = 13; byte = 1; // 2^n 나눈 몫 printf("%d ", byte); //비트 곱(&), 합(|), xor(^) 반전(~) //비트 단위로 연산을 진행, //& 둘다 1인 경우 1 // | 둘중 하나라도 1이면 1 // ^ 같으면 0, 다르면 1 // ~1 = 0, 0 = 1 unsigned int iStatus .. 2022. 7. 14.
컴퓨터'언어' 역사 컴퓨터 "언어"는 2진수(0, 1)로 되어있다. 명령어(2진수로 되어있는 데이터)를 컴퓨터가 받아들여 실행한다. 2진수를 사용하는 이유 - 컴퓨터라는 장치 자체는 전기적 신호로 되어있다. - 전류의 차단, 흐름이란 두가지 상태케이스의 개념을 0, 1에 부여했다. - 컴퓨터에게 있어서 0, 1은 전기적 신호이다. - 특정 신호가 들어오면 특정 동작을 실행 하는 회로로 구성 되어있다. 언어 초창기에는 우리가 컴퓨터의 명령을 직접 알고있어야 했다. 특정 명령어를 넣어주면 CPU가 특정 동작을 취한다는 방식이다. 하지만 CPU의 제조사마다, 버전마다 명령어가 달랐다. 각자 다른 명령어를 전부 암기할 수 없으므로 명령어가 통일되며 만들어진게 "운영체제(OS)"이다. 우리는 OS가 요구한 명령어를 넣어주면 각 제조.. 2022. 7. 12.
계수정렬(Counting Sort) Goal - Counting Sort 에 대해 설명할 수 있다. - Counting Sort 과정에 대해 설명할 수 있다. - Counting Sort를 구현할 수 있다. - Counting Sort의 시간 복잡도를 계산 할 수 있다. 1. Counting Sort Summary - '범위 조건'이 있는 경우에 한해서 제일 빠른 알고리즘 O(N) - '크기의 기준으로' 세는 알고리즘 2. Counting Sort Processing - 원소의 크기 범위만큼 배열을 만든다 - 각각 값들이 몇개인지 확인 후 그 개수만큼 출력 3. Counting Sort Coding //계수정렬 #include int main(void) { int i , j, temp; int count[5]; int array[30] =.. 2022. 7. 12.
선택자(Selector) 요소 선택자(태그 선택자) h1{color: green;} h2{color: red;} h3{color: black;} h4{color: skyblue;} h5{color: yellow;} h6{color: white;} 그룹화 h1, h2, h3, h4, h5, h6 {color: green;} 문서 내에 모든요소 *{margin : 0 auto;} class 선택자 - 요소에 구애받지 않고 스타일 규칙을 적용할 수 있는 가장 일반적인 방법 - html태그에 class 속성 추가해야 한다 - class 속성은 글로벌 속성이므로 어느 태그에서도 사용할 수있다 - 공백으로 구분하여 여러 개의 class 값을 넣을 수 있다 - class 선택자를 사용 할 때는 .(마침표)를 사용한다 id 선택자 - id 선.. 2022. 7. 12.
CSS문법과 적용 ● 선택자 (selector) ● 속성 (property) ● 값 (value) ● 선언(declaration) ● 선언부(declaration block) ● 규칙(rule set) div { border : 1px solid red; } /*선택자, 속성, 값, 선언*/ 2022. 7. 12.
힙 정렬(Heap) Goal - Heap Sort 에 대해 설명할 수 있다. - Heap Sort 과정에 대해 설명할 수 있다. - Heap Sort를 구현할 수 있다. - Heap Sort의 시간 복잡도를 계산 할 수 있다. 1. Heap Sort Summary - 힙 트리 구조(Heap Tree Structure)를 이용하는 정렬방법 - 최솟값과 최댓값을 빠르게 찾아내기 위해 완전 이진 트리를 기반으로 하는 트리 - 이진 트리에 대한 이해 필요(완전 이진 트리) - 최대힙 = '부모 노드'가 '자식 노드' 보다 큰 힙 - 힙 생성 알고리즘 (Heapify Algorithm) 을 사용해야함 - 힙 생성 알고리즘 = 특정한 노드의 두 자식 중에서 더큰 자식과 자신의 위치를 바꾸는 알고리즘 2. Heap Sort Proces.. 2022. 7. 11.
트리(tree)와 이진트리(binary tree) concepts 1. TREE - 모양이 뒤집어 놓은 나무와 같다고 해서 이름 붙혀짐 - 계층적인 구조를 표현할 때 사용할 수 있는 자료구조 - "루트노드를 제외한 모든 노드는 단 하나의 부모노드만을 가진다" ● 임의의 노드에서 다른 노드로 가는 경로(path)는 유일하다. ● 회로(cycle)가 존재하지 않는다. ● 모든 노드는 서로 연결되어 있다. ● 엣지(edge)를 하나 자르면 트리가 두 개로 분리된다. ● 엣지(edge)의 수 |E| 는 노드의 수 |V|에서 1을 뺀 것과 같다. - 노드(node) = 검정색 동그라미(데이터가 담김) - 엣지(edge) = 노드와 노드 사이를 이어주는 선 - 경로(path) = 인접한 노드들로 이뤄진 시퀀스, 경로의 길이는 경로에 속한 엣지의 수 - 트리의 높이.. 2022. 7. 11.
블록 & 인라인 Block Level 요소 : 한 줄에 하나의 요소 표시 - 부모 요소의 가로 영역에 맞게 꽉 채워져 표현되는 요소 - div, h1~h6, p, ul, li, table Inline Level 요소 : 한 줄에 여러개의 요소 표시 - 하나의 라인 안에서 자신의 내용만큼의 박스를 만드는 요소 - span, i, img, em, strong, a 예외 경우 - 는 인라인 레벨 요소지만 자손으로 블록 레벨 요소를 가질수 있다. 2022. 7. 7.
폼 관련 요소(FORM)4 lable - form 요소의 이름과 form 요소를 명시적으로 연결시켜주기 위해 사용 - form 요소의 id 속성값과 의 for 속성값을 같게 적어야함 - 을 사용하면 이를 클릭했을 경우 해당 form요소를 클릭한 것처럼 동작 - screen 리더기를 통해 듣게 되면 해당 form 요소에 접근 시 함께 읽어주게됨 - 사용성, 접근성적인 측면으로 중요한 역할을 함 fieldset, legend - fieldset = 여러개의 폼 요소를 그룹화 하여 구조적으로 만들기 위해 사용 - legend = 폼 요소의 제목으로 내부에 작성 form - form 요소를 감싸는 태그로 데이터를 묶어서 실제 서버로 전송해주는 역할을 함 - fieldset 으로 구조화 되어있다면 도 함께 감싸는 역할을 함 - form 속.. 2022. 7. 7.
폼 관련 요소(FORM)3 select - 선택 목록 상자 또는 콤보박스 - 으로 각 항목을 나타냄 - 속성으로는 selected가 있으며 이는 선택된 항목을 의미 textarea - 여러줄의 텍스트를 사용할때 사용 - cols : 가로 크기를 조절하는 속성 - rows : 세로 크기를 조절하는 속성 button - input 타입의 submit, reset, button과 모두 같은 기능을 가진 버튼 - 차이점은 빈태그가 아니어서, 내용을 직접 넣을 수 있으므로 자유로운 스타일 표현가능 좋아하는 운동 : 축구 야구 농구 자기소개 : 로그인 2022. 7. 7.