반응형

Programming 298

알고리즘 기초 정리 1 (트리, 노드, 이진트리, 링크표현법, 이진탐색트리)

1. 리스트, 스택, 큐는 선형구조이며, 트리는 계층적인 구조의 비선형 자료구조이다. 2. 트리는 부모와 자식관계의 노드(트리의구성요소)들로 만들어 진다. 루트는 부모가 없는 노드이다. 3. 트리에서 레벨은 각층의 번호이며, 높이는 최대 레벨이다. 차수는 자식 노드의 개수이며, 트리의 차수는 노드의 최대 차수이다. 4. 트리는 이진트리와 비이진트리가 존재한다. 이진트리는 모든노드가 2개의 서브트리를 가지고 있는 트리이다. (최대2개) 5. 노드의 개수가 n개이면 간선의 개수는 n-1 이다. (루트노드를 제외하고 모두 부모노드를 가지기때문이다.) 6. 이진트리에서 최소노드의 개수는 높이이며, 최대는 2^h -1 개의 노드이다. 7. 링크표현법: 포인터를 활용하여 부모노드가 자식노드를 가르키는 표현법이다. ..

백준 1789 수들의합 [c++]

#include using namespace std; int main() { ios::sync_with_stdio(0); cin.tie(0); long long S;//입력받을 자연수의합 선언 long sum = 0;//자연수의합과 비교할 변수 int count = 0;//더해지는 자연수를 count할 변수 long num = 1;//더해질 변수 cin >> S;//S를 입력 while (1)//무한루프 { sum += num;//num의값을 sum에 더한다 count++;//값을 더했으니 count에 1더한다 if (sum > S)//sum의 값이 자연수의 합보다 커진다면 { count--;//count에서 1을빼고 반환한다. 문제에 나온 예시인 합 200을보면 1씩더해서 200이 딱나오지 않는다.이 ..

자바 기초 정리 [객체지향언어2] (식별자,데이터타입,var,final,증감연산)

1. 식별자(identifier)는 변수, 클래스 등에 붙는 이름이다. 특수문자, 공백은 사용할수없지만 $와 _는 가능하다. 그리고 첫번째 문자에서 숫자는 사용할수없다. 대소문자를 구별해야한다.(temp 와 Temp는 다르다.) 2. 자바의 데이터 타입은 8개로 short(2바이트), int(4바이트), byte(1바이트), char(2바이트), boolean(참거짓 1비트), long(8바이트), float(4바이트), double(8바이트)가 있다. 3. 문자열은 기본 타입이 아니며, String 클래스로 문자열을 표현한다. 4. 변수선언 ex) int temp; char temp2; 5. 리터럴은 프로그램에서 직접 표현한 값으로서 그 예로 34, %, true 등이 있으며 정수, 실수, 문자, 논리..

안드로이드 커스텀뷰 기초 (onDraw, Invalidate, Canvas)

1. Canvas (그림그릴때 사용되는도화지) 와 Paint를 사용하여 안드로이드 스튜디오에서 도형,선 등을 그릴 수 있다. 2. view를 상속하여 터치이벤트 처리와 그래픽 요소들을 만들 수 있다. 3. 안드로이드의 UI요소는 모두 view를 상속한다. 4. onDraw(): 호출하여 외형을 그릴수 있다. onTouchEvent(): 터치 이벤트를 처리할수있다. 5. Canvas 메소드 종류: drawColor(배경색지정) drawCircle(원그리기) drawText(글자출력) drawPath(경로그리기) 등이 있다. 6. Invalidate(): 원하는 때 다시그릴때 활용되며, View의 화면을 갱신한다. (전체뷰의무효화) 커스텀뷰 활용예제 2021.09.08 - [android] - 안드로이드 커..

Programming/Android 2021.09.08

안드로이드 커스텀뷰 랜덤도형출력 (CustomView, Myview, onTouchEvent)

안드로이드 커스텀뷰 랜덤도형출력 (CustomView, Myview, onTouchEvent) 화면을 터치하면 터치한 위치에 랜덤으로 사각형,원,삼각형이 나타난다. Myview.kt package com.cookandroid.customview01 import android.content.Context import android.graphics.* import android.graphics.drawable.shapes.OvalShape import android.util.AttributeSet import android.view.MotionEvent import android.view.View import kotlin.random.Random class Myview : View { var rect = R..

Programming/Android 2021.09.08

오픈소스 소프트웨어 1장 기초 정리 (OSS,Open Sourece Software)

1. Free Software는 상업적이용에는 엄격하지만 사용자 권리에 중점을 둔다. 2. Open Sourece Software는 저작자의 권리를 보호하며 소스코드를 공개한다. 상업화가 가능하며, 사용,복제,수정,재배포를 허락한다. 3. OSS는 소스코드는 공개하지만 지적재산권으로 보호된다. 조건의 범위를 명시한 라이선스로 권리를 보호한다. 4. OSS는 개발언어, 개발도구, 프레임워크, OS 등 다양한 형태로 제공되고 있다. 5. OSS는 자체적으로 수정 및 기술변화가 가능하기 때문에 고착 현상을 탈피할 수 있으며, 개발 생산성이 높아지고 비용절감 효과를 얻을 수있다. (집단지성을 이용한 발전) 6. OSS의 단점으로는 품질에 대한 보증이 부족할 수 있으며, 지속성이 중단되는 경우가 발생할 수도 있다..

데이터통신 1장 기초 정리 (통신프로토콜, Sender, Receiver, TCP/IP)

1. 데이터 통신에서 유선이나 무선매체로 데이터를 보내는쪽은 Sender 받는쪽은 Receiver 전송매체는 Medium이라고 한다. 2. 통신은 양방향으로 이루어지며, 이동통신 및 개인 맞춤형 서비스의 경향이 강해지고 있다. 3. 네트워크의 평가기준은 성능, 신뢰성, 보안이며, 네트워크의 bandwidth는 대역폭으로서 네트워크의 속도에 많은 영향을 미친다. 네트워크를 사용할때는 상황에 따라 적합한 네트워크를 선택하는 것이 가장 중요하다. 4. 네트워크를 사이즈로 분류했을때 LAN/WAN/MAN/PAN이 있다. LAN은 유선, 무선랜(와이파이)가 있다. WAN은 Wide Area Network로서 가장 큰 네트워킁이다. MAN은 대학캠퍼스,연구단지 정도의 규모에서 사용되는 네트워크이다. PAN은 10m..

백준 2693 N번째 큰수 [c++]

#define _CRT_SECURE_NO_WARNINGS #include using namespace std; int main() { int n;//입력받을배열의 수 cin >> n;//정수 입력 int result[1000];//3번째 큰수를 담을 배열 int count=0;//result 배열의 인덱스로 활용될 수 int temp;//배열안의 위치를 변경할때 사용될 변수 int arr[10];//배열선언 for (int i = 0; i < n; i++)//여러개의 배열을 입력받기 위한 반복문 { for (int i = 0; i < 10; i++)//배열안의 정수를 입력받기 위한 반복문 { scanf("%d", &arr[i]); } int s = 10; for (int i = 0; i < s; i++)..

백준 2609 최대공약수 최소공배수 [c++]

#define _CRT_SECURE_NO_WARNINGS #include using namespace std; int fun(int a, int b) {//유클리드 호제법 사용 int temp;//정수의 위치를 바꿀때 사용될 변수 while (b != 0) //b가 0이 아닐때 까지 반복 { temp = a % b;//a에서b를 나눈 나머지를 temp에 대입 a = b;//a에b대입 b = temp;//b에 temp 대입 } return a; } int main() { int a, b;//입력받을정수 cin >> a >> b;//정수입력 printf("%d %d", fun(a, b), (a * b) / fun(a, b));//첫번째 정수는 최대공약수, 두번째 정수는 두수를 곱한뒤 최대공약수로 나눈 최송공..

반응형