본문 바로가기

[C언어] 변수선언과 출력함수(printf) 및 입력함수(scanf) / 주석(설명)다는법 앞으로 소스코드를 아래와 같이 표현할건데요!! 복사해서 그대로 붙여넣어서 실행창(콘솔화면)을 보며 주석을 확인해주세요. 주석이란 프로그램에는 영향을 주지않는 설명을 다는거에요. 한줄주석은 // 여러줄을 주석처리할때에는 /* 내용 */ 로 사용합니다.#include // include란 파일을 포함하기 위해 사용한다. stdio.h라는 파일은 미리 선언된 헤더파일로서 표준입출력함수(scanf, printf)에 관련된 파일이다. // 이런형태를 함수라고하는데, 나중에 배울 내용이기때문에 일단은 넘어감. void main() { // 변수선언 : 변하는숫자를 의미한다 int width = 4; // 정수형 변수 width를 선언하고 4라는 값을 넣어준다 int height = 5; // 정수형 변수 heigh..
[C언어] 프로그램 작성을 위한 VisualStudio2017설치(콘솔종료, scanf문제 해결) C언어는 프로그램을 작성하기 위한 언어입니다. C언어를 처음 배우고 실습을 하기 위해서는 VisualStudio라는 프로그램이 필요합니다. 아래 홈페이지에서 다운받으시면 됩니다!! https://docs.microsoft.com/ko-kr/visualstudio/install/install-visual-studio?view=vs-2017#step-2---download-visual-studio 다운받고 처음실행하면 뭐가 뭔지 모르실거에요. 구성을 보면 프로젝트 - 소스파일의 형태인데, 소스파일이 저희가 실질적으로 프로그램을 작성합니다. 이런식으로 프로젝트와 소스파일을 만들구요!! VisualStudio2010에서는 scanf를 사용하지만, 2015부터인가? scanf_s로 바뀐거 같더라구요!! 보안의 문..
[Android] 페이스북 로그인 연동 코드 미리 말씀드리면 Firebase를 통한 페이스북로그인연동이 아닙니다. (다릅니다) 일단 다른 로그인연동과 마찬가지로 Facebook for Develover에서 가입을 해줘야합니다. 페이스북아이디가 없다면 회원가입하시고, 있다면 신청만 하시면 됩니다. https://developers.facebook.com/?locale=ko_KR 이렇게 새 앱을 추가해서 만들어주시구요!! 왼쪽에서 제품에서 Facebook로그인을 추가해주시고, 빠른시작을 선택해줍니다. 저는 필요한부분만 사용해서 구현을 할거구요. 없는부분은 그냥 계속버튼 눌러서 넘겼다고 생각하시면 됩니다. 키 해시를 구해서 추가해주어야 합니다. 구하는 방법은 밑에 들어가시면 나와있습니다^^https://yhong.tistory.com/2?category..
[알고리즘] 탐색트리(2) - 예제 [문제1] 이진탐색트리를 구현하는 프로그램- 삽입(i) : 키를 받아 노드생성 및 트리에 삽입- 삭제(d) : 키를 받아 트리에 존재하면 해당 노드 삭제후 키를 출력, 없다면 X를 출력- 탐색(s) : 키를 받아 트리에 존재하면 해당 키를 출력, 없다면 X를 출력- 출력(p) : 현재 트리를 전위순회로 출력- 종료(q) : 프로그램 종료 입력예시 출력예시i 3i 2i 7s 4i 6pi 5s 6q X 3 2 7 6 6 i 9i 2i 15i 1i 7i 11i 5i 8i 3i 4pd 2d 13pq 9 2 1 7 5 3 4 8 15 11 2 X 9 3 1 7 5 4 8 15 11 #include#includestruct node{int key;struct node *parent;struct node *lChil..
[알고리즘] 탐색트리(1) - 설명 탐색트리는 사전의 두 번째 형태로써 이진트리로 구현되며 탐색, 삽입, 삭제의 주요 작업을 지원한다. 이진트리를 구현하는 방식에 따라 탐색트리를 이진탐색트리, AVL트리, 스플레이 트리로 나눌 수 있다. 이진탐색트리는 내부노드에 (키, 원소) 쌍을 저장하며 다음의 성질을 만족하는 트리이다. - u, v, w는 모두 트리노드며 u와 w가 각각 v의 왼쪽 오른쪽 부트리에 존재할 때 key(u) < key(v)
[알고리즘] 사전ADT(2) - 예제 [문제1] 정렬되어 있는 n개의 정수 키와 탐색할 키 k를 입력받아, 사전에서 k의 위치를 출력하는 프로그램(이진탐색-재귀버전) - x ≤ k 를 만족하는 사전의 키 x 중 가장 큰 값의 위치(즉, 인덱스) 출력 (위치는 0부터 시작한다고 가정하고, 위 조건을 만족하는 x가 없는 경우 –1 출력) - 즉, 키 k가 존재하는 경우에는 k의 위치를 출력하면 되고, 그렇지 않은 경우 k보다 작으면서 가장 큰 수의 위치를 출력하면 된다. 입력예시 출력예시 8 -7 -92 -31 -7 4 14 20 29 44 2 -> 사전에서 -7의 위치는 2 8 33 -92 -31 -7 4 14 20 29 44 6 -> 문제 조건을 만족하는 사전의 키는 29, 29의 위치는 6 #include #include int maxin..
[알고리즘] 사전ADT(1) - 설명 사전ADT는 (키, 원소) 쌍으로 표현된 데이터 항목의 모음을 추상데이터구조로 모델링한 것이다. 사전ADT에는 2종류가 있다. - 무순사전ADT : 데이터항목이 키 순서와 관계 없이 저장된 사전(Ex. 기록파일(log file)) - 순서사전ADT : 키 순서에 의해 정렬이 되어 저장된 사전(Ex. 일람표) 사전ADT메소드 1) 일반메소드 - integer size() : 사전의 항목 수를 반환 - boolean isEmpty() : 사전의 비어 있는지 여부를 반환 2) 접근메소드 - element findElement(k) : (키, 원소) 항목들의 모음인 사전에 키 k를 가진 항목이 존재하면 해당 원소를 반환, 그렇지 않으면 특별원소 NoSuchKey를 반환 3) 갱신메소드 - insertItem(k..
[알고리즘] 합병정렬과 퀵정렬(2) - 예제 [문제1] n개의 양의 정수(중복 가능)를 입력받아 합병정렬하는 프로그램 - 단일연결리스트로 구현 입력예시 출력예시 8 73 65 48 31 29 20 8 3 3 8 20 29 31 48 65 73 #include #include struct node{ int data; struct node *next; }; void partition(struct node *L, struct node **L1, struct node **L2, int n) { struct node *p = L; *L1 = L; for (int i = 0; i next; } *L2 = p->next; p->next = NULL; } struct node *merge(struct node ..