전체 글
-
GIT 명령어 정리IT/개발 2021. 1. 18. 13:38
git init git remote add origin 주소적으세요 -Command [Pull] git pull origin master : 지정해놓은 Repository에서 끌어오는 명령어 [Push] 1. git status : 현재 나의 로컬 폴더와 Git과의 상태를 체크하는 명령어 (untracking file 확인 가능) 2. git add . (온점 주의): 로컬 폴더와 Git 사이의 변경된 파일들을 모두 Tracking 하는 명령어 3. git config --global user.email "이메일적으세요" git config --global user.name "이름적으세요" 4. git commit -m "message" : commit을 달 수 있는 명령어 (git에 push를 할 때 ..
-
03.포인터 배열Computer Science/자료구조 2020. 9. 16. 14:17
배열은 같은 타입의 변수가 여러 개 필요한 경우에 사용한다. int num[5] => num[0] ... num[4]까지 5개의 정수형 변수를 배열로 만든 것이다. 배열의 인덱스는 0부터 시작함에 꼭 유의한다. 포인터는 c언어에서만 사용한다. c언어에서는 메모리 효율을 높이는 것을 목적으로 포인터를 사용한다. 성능이 좋은 컴 퓨터에서는 굳이 포인터를 사용할 필요가 없다. 고성능 메모리라면 굳이 할당을 하지 않더라도 용량이 남기 때문이다. 포인터변수는 주소값만을 저장할 수 있는 변수이며 변수명을 통해 접근할 수 있다. 포인터에서 사용되는 기호는 두 가지이다. * : 주소를 저장할 수 있는 변수 선언 & : 변수가 가지고 있는 주소 값 -동적변수 공간 할당 p = (int * ) malloc(sizeof(i..
-
02. 추상자료형Computer Science/자료구조 2020. 9. 15. 10:08
대부분의 프로그래밍 언어의 자료형은 크게 두 가지로 분류할 수 있다. 첫번째는 숫자형, 이는 계산을 하기위한 목적이다. 두번째는 문자형, text형식으로 처리하는 형태이다. 추상자료형은 구현은 하지않고 추상적으로 자료형을 정의해두고 사용할 때 구현해서 사용하는 개념이다. 즉, 객체지향의 인터페이스와 같이 추상 자료형으로 정의만 하고 구현할 때 정의한 것을 불러서 사용한다. 1byte = 8bit 임을 참고하여 자료형들을 정리하면 아래와 같다. 타입 크기 값의 범위 정수형 char 8 bit (1 byte) -128 ~ +127 short 16 bit (2 byte) -32,768 ~ +32,767 int 32 bit (4 byte) -2,147,483,646 ~ +2,147,483,647 long 32 ..
-
01.객체지향 방법론Computer Science/자료구조 2020. 9. 14. 22:01
-객체지향 방법론이란? 객체를 중심으로 사고하는 체계. 복잡한 프로그래밍을 여러 개의 함수로 분리하고 함수들ㅇ르 모아두고 객체화하여 절차적 기법과 달리 재활용이 가능하다는 장점이 있다. 대표적인 언어로는 C++ 언어가 있다. -객체지향 용어 메시지, 요구사항 - 멤버변수 객체 - 변수와 방법(메소드) 정보의 은닉- 접근 제한자를 통하여 숨길 수 있다. -클래스 계층구조 하위클래스를 일반화 한 것이 상위클래스. 상위클래스의 특수한 경우가 하위 클래스. 객체지향 언어에서 클래스 간의 계층구조를 선언하는 것은 상위클래스의 속성(attribute)을 상속(inheritance)받기 위함이다 -객체지향 설계 과정 1단계. 문제를 풀기 위해 필요한 객체를 설정한다 2단계. 객체들 간의 유사속성을 파악한다 3단계. ..
-
[c언어] N의 약수가 주어질 때 N 값 구하는 프로그램Computer Science/알고리즘 2020. 8. 25. 23:19
문제: 양수 A가 N의 진짜 약수가 되려면, N이 A의 배수이고, A가 1과 N이 아니어야 한다. 어떤 수 N의 진짜 약수가 모두 주어질 때, N을 구하는 프로그램을 구현하라. source: m2.c #include #include //malloc 함수가 선언된 헤더파일 int *divisor; //divisor 포인터 선언 int compare(const void *a, const void *b) { //비교하는 함수 return (*(int*)a - *(int*)b); } int main() { int N; scanf("%d", &N); //N을 입력받음 divisor = malloc(sizeof(int)*N); //int 크기 4바이트만큼 동적 메모리 할당 for (int i = 0; i < N; ..
-
[정렬 알고리즘] 숫자 애너그램 찾기Computer Science/알고리즘 2020. 8. 25. 09:02
문제: ‘애너그램’이란 문자를 재배열하여 다른 뜻을 가진 단어로 바꾸는 것을 말합니다. 예를 들면 영어의 ‘tea’와 ‘eat’과 같이, 각 단어를 구성하는 알파벳의 구성은 같지만 뜻은 다른 두 단어를 말합니다. 우리말에는 ‘문전박대’와 ‘대박전문’과 같은 예를 들 수 있습니다. 우리는 문자 대신 숫자를 이용해서 애너그램을 찾는 프로그램을 만들어봅시다. 5자리의 숫자 1쌍이 입력으로 주어지며 애너그램일 경우에는 “True”를 아닐 경우에는 “False”를 출력하도록 합시다. 숫자를 입력받는 부분은 따로 구현하지 않고 프로그램 내부에 배열로 선언하는 것으로 가정하고, 숫자에는 중복이 있을 수 있습니다. 예) 입력값: 12345, 54321 -> 출력값: True 입력값: 14258, 25431 -> 출력값..
-
포인터를 사용하여 2차원 배열 데이터 접근하기Computer Science/알고리즘 2020. 8. 25. 08:56
https://sandbox.cs50.io/87d1e71b-ae34-4473-a25c-6b9fd64aa68e CS50 Sandbox Temporary programming environments for students and teachers. sandbox.cs50.io 2차원배열의 행과 열의 크기를 각각 구하는 부분을 아래와 같이 선언하였다. int row = sizeof(arr) / sizeof(arr[0]); //행 int col = sizeof(arr[0]) / sizeof(arr[0][0]); //열
-
알고리즘의 시간 복잡도 총 정리Computer Science/알고리즘 2020. 8. 16. 21:53
무거운 프로그램일 수록 처리하는 데이터가 많아지고 처리하는 작업이 복잡해질수록 시간은 매우 중요해집니다. 그래서 개발자들은 상황에 따라 특정 알고리즘을 유연하게 사용할 수 있어야 합니다. 특정 알고리즘의 실행시간을 표기하는 용어는 아래와 같습니다. Big O 표기법에서 O 는 "on the order of"의 약자로 "~만큼의 정도로 커지는" 것이라고 해석됩니다. O(n)은 n만큼 커지는 것이므로 n이 늘어날수록 선형적으로 증가하게 됩니다. O(n/2)는 n이 무한대로 커지면 1/2는 결국 의미가 없어지므로 O(n)과 같은 의미로 볼 수 있습니다. Big Ω표기법은 반대로 알고리즘 실행시간의 하한을 나타낸 것입니다. 예를 들어 선형 검색은 n개의 항목이 있을 때 앞에서부터 차례로 하나씩 검색하므로 총 n..