프로그래밍 개념 참고 사이트 (한글) 코딩 도장: Python, C 개념 공부 모두의 코드: C, C++ 개념 공부 SoEn : C, C++, 등 문법 공부 가능 유니티로 배우는 C# 강좌(유튜브): 유니티 C# 문법 공부 가능 Edwith: 여러 프로그래밍 공부 사이트 생활코딩 : Java, Python, 등 문법 공부 가능 TCP School - MySQL: MySQL 기초 공부 점프투파이썬: Python 기초 문법 설명 파이썬 - 기본을 갈고 닦자!: Python 기초 문법 설명 메모앱 만들기(Xcode 11, Swift 5): Swift, Xcode 맛보기 Hashcode: 코드 실행기 유니티 공식 참고 사이트: 유니티 초반 공부 코코아팹 : 아두이노, 오렌지보드 설명 및 여러 오픈소스 제공 프로..
6. 재귀함수 1. 재귀함수 (Recursiond function) Bace Case - 기본 값, 무한루프에 빠지지 않게 한다. Recursive Case - 반복하다 base case로 빠진다. 2. 재귀함수 활용 1) 팩토리얼 계산 int fn(n) { if (n == 0) return 1; else return n * fn(n-1); } 2) 피보나치 계산 int fn(n) { if (n == 0 || n == 1) return 1; else return (fn(n-1) + fn(n - 2)); } 3) 최대공약수 계산 간소화 (유클리드 메소드) int fn(n, m) { if (m < n) { int temp = m; n = m; n = temp; } if (n == 0) return m; el..
5. 포인터 1. 포인터 자료의 주소를 저장하는 변수. (값 참조) 형태: 자료형 *변수이름; * : 포인터 변수를 선언하는 포인터 연산자 & : 변수의 주소 알려주는 주소연산자 ex) int *pointer; int num = 1; pointer = # // pointer 변수에 현재 num의 주소값 저장 포인터 변수에 값을 할당하고 싶으면 넣고 싶은 주소를 변수에서 주소연산자, &을 이용해 뽑는다. & 연산자를 피연산자의 주소로 반환한다. & 연산자의 피연산자는 반드시 변수이어야만 한다. 포인터 변수와 형(int, float, ...)과 주소값에 저장될 변수의 자료형은 반드시 일치해야 한다. 포인터 변수를 선언하고 당장 사용하지 않으면 NULL 값을 채워넣는 것을 권장한다. - 널포인터 보통변..
4. 오버 플로우 & 언더플로우 정해진 변수의 데이터 타입의 최솟값 미만의 값, 혹은 최댓값 초과의 값을 해당 데이터 타입의 변수에 입력하면 이 변수에는 오류가 발생한다. 최솟값 미만의 값을 넣으면 언더플로우로 최댓값부터 다시 시작 최댓값 초과의 값을 넣으면 오버플로우로 최솟값부터 다시 시작 데이터 타입이 표기 가능한 값의 범위를 초과했기 때문에 범위가 한 바퀴 순환하여 다시 반대편에서부터 시작. 그래서 입력될 값의 최솟값과 최댓값을 고려해서 변수의 데이터 타입을 정해줘야 한다. 또, 무턱대고 큰 값의 데이터 타입을 정해주면 메모리 낭비 등 프로그램의 효율성이 저하되니 주의.
2. 정적 라이브러리 & 동적 라이브러리 1. 정적 라이브러리 (Static Library) 컴파일되어 있는 오브젝트 파일들이 하나로 묶여있는 형태. 1) 장점 런타임이 없다. 실행 파일을 배포할 때 포함하지 않는다. 컴파일 타임에 정적 라이브러리에 연결하는 것이 일반적으로 개별 소스 파일에 연결하는 것보다 빠르다. 2) 단점 업데이트 시, 프로그램을 새 실행 파일로 다시 컴파일해야 한다. 해당 라이브러리를 사용하는 시스템의 모든 프로그램은 실행 파일에 사본을 포함한다. 즉, 매우 비효율적이다. 2. 동적 라이브러리(Dynamic Library) 컴파일되어 있는 오브젝트 파일 그 자체. 1) 장점 프로그램을 실행할 때 라이브러리 파일의 단일 사본만 메모리에 로드하므로 해당 라이브러리를 사용하여 여러 프로..
1. 공간 복잡도 & 시간 복잡도 1. 공간 복잡도(Space Complexity) 알고리즘 메모리 사용량에 대한 분석결과 2. 시간 복잡도(Time Complexity) 알고리즘 수행시간 분석결과 3. Big-O 표기법(Big-O Notation) 시간 복잡도에서 가장 큰 영향을 미치는 차항으로 시간복잡도를 나타내는 것 4. Big-O 종류 O(1) - 상수 시간: 입력값 n이 주어졌을 때, 알고리즘이 문제를 해결하는데 오직 한 단계만 거침. O(log n) - 로그 시간: 입력값 n이 주어졌을 때, 문제를 해결하는데 필요한 단계들이 연산마다 특정 요인에 의해 줄어듬, 이진탐색. O(n log n) - 선형로그 시간: 퀵 정렬, 병합 정렬, 힙 정렬. O(n) - 직선적 시간: 문제를 해결하기 위한 단..
4. 비트 연산자 1. 비트 (Bit) 두가지 중 1가지 값을 저장할 수 있는 단위, 흔히 0과 1로 표현하지만, 이는 시각적인 것. 2. 바이트 (Byte) 8개의 비트로 구성, 2의 8승인 256가지의 경우의 수 저장 가능. ※ 1Byte = 8Bit (2의 3제곱Bit) 1KByte = 1024Byte (2의 10제곱Byte) 1MByte = 1024KByte (2의 10제곱KByte) 1GByte = 1024MByte (2의 10제곱MByte) 1TByte = 1024GByte (2의 10제곱GByte) 3. 비트 연산자 왼쪽시프트 연산자 첫번째 피연산자의 비트를 두번째 피연산자의 수만큼 오른쪽으로 이동 첫번째 피연산자: int, uint, long, ulong 두번째 피연산자: int 논리곱(A..
[ 초보자를 위한 C# 200제 ] C#_012 using System;using System.Collections.Generic;using System.Linq;using System.Text; /* 삼항 연산자( ? : ) * * if~else를 간단하게 만든 수식 * D = C ? A : B * C(조건식)을 실행하여 결과가 참이면 A를 D에 대입하고, * 거짓이면 B를 D에 대입한다. * * ? : 가 동시에 보이면 삼항 연산자를 바로 떠올르기 * */ namespace Project_012{ public class Numbers { // 짝수인가? public static bool IsEven(int num) { bool isP = (num % 2 == 0) ? true : false; retu..
[ 초보자를 위한 C# 200제 ] C#_011 using System;using System.Collections.Generic;using System.Linq;using System.Text; // if ~ else namespace Project_011{ public class Numbers { public static bool IsEven(int num) // num이 짝수인지 판단하기 { bool isP = false; if(num % 2 == 0) // 2로 나누어 나머지가 0이면 짝수, 나머지가 1이면 홀수 { isP = true; // 짝수면 true } // 아래 3줄은 생략해도 무관 else { isP = false; } return isP; } public static bool IsO..
[ 초보자를 위한 C# 200제 ] C#_010 using System;using System.Collections.Generic;using System.Linq;using System.Text; namespace Project_010{ class Program { static void Main(string[] args) { /* 키워드(예약어)와 이름명령법 * * 키워드는 프로그램에서 이미 정의되어 사용되고 있는 것 * 사용자가 변수나 클래스, 메서드의 이름으로 선언하여 사용할 수 없다. * 키워드는 "모두" 소문자이다. * * 식별자(identifier): 클래스, 메서드, 변수의 이름으로 사용되는 규칙 */ } }}
[ 초보자를 위한 C# 200제 ] C#_009 using System;using System.Collections.Generic;using System.Linq;using System.Text; namespace Project_009{ class Program { static void Main(string[] args) { /* 메서드(method) * 데이터를 받아서 연산을 수행한 다음, * 결과를 리턴하는 과정을 나열한 것이 메서드 선언이다. * 실행되고 있으면 메서드 호출이라고 한다. * 준비하고 있는 상태는"선언", 실행되고 있는 상태는 "호출"이다. * * 메서드 외부에서 입력되는 데이터를 아규먼트라고 한다. * "메서드 이름(아규먼트)" 형식대로 선언하고 호출한다. */ Console.Wri..
- Total
- Today
- Yesterday
- 비전공자
- 컴퓨터과학이 여는 세계
- 영화
- 독서
- dynamic
- 컴퓨터의 시초
- 에니그마
- 오버플로우
- 이광근
- 프로그래밍
- 두 수 입력
- c
- 초보자를 위한 C# 200제
- c#
- 나눗셈
- 프로그램
- 유니티 기초
- 뇌를 자극하는 C# 5.0 프로그래밍
- 동적
- 앨런 튜링
- 기계적 추론
- 기본개념
- 튜링
- 메서드
- 정수
- 서울대
- 초보
- 계산기
- 컴퓨터과학
- 수리 명제 자동판결 문제
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |