반응형

Programming 298

하노이탑 c언어 예제 (자료구조)

하노이탑 코드 비록 짧은 코드이지만 재귀함수를 이해하는데 도움이 많이 되는 것 같습니다. 저는 처음봤을때 머리로 한번에 이해가 되지않아서 한단계씩실행하여 과정을 천천히 이해했습니다. #define _CRT_SECURE_NO_WARNINGS #include #include void Hanoi(int num, char from, char by, char to) { if (num == 1) printf("원반1을 %c에서 %c로 이동\n", from, to); else { Hanoi(num - 1, from, to, by); printf("원반%d를 %c에서 %c로 이동 \n", num, from, to); Hanoi(num - 1, by, from, to); } } int main() { Hanoi(3, '..

자료구조 기초 개념 (Data Structure) (빅오표기법)

자료구조란 프로그램은 데이터의 표현 및 데이터의 처리이다. 이때 데이터의표현은 데이터의 저장을 포함하는 개념이며, 데이터의 저장을 담당하는 것이 자료구조 이다. 자료구조의 종류는 선형구조(리스트, 스택, 큐), 비선형구조(트리, 그래프), 파일구조, 단순구조가 있다. 알고리즘의 성능분석방법 자료구조와 알고리즘의 정상적인 동작외에 좋은성능인지 알기위하여 자료구조와 알고리즘을 분석하고 평가하기위해서 필요하며, 처리해야할 데이터의수(n)이 있다고 가정했을때 n의 증가에 따라서 변하는 연산횟수로 판단할수 있다. 시간복잡도(time complexity): 알고리즘의 수행시간 분석결과 공간복잡도(space complexity): 메모리 사용량에 대한 분석결과 알고리즘의 동작을 판단할때 최선의 경우(best case..

객체지향언어2 -자바- for-each문 예외처리 클래스 생성자

객체지향언어2 -자바- for-each문 예외처리 클래스 생성자 1. 자바에서 for-each문은 배열의 각 원소에 순차적으로 접근할때 유용한 for 문이다. 2. 정방형 배열은 행과 열의 개수가 같은 배열이며, 비정방형 배열은 행과 열의 개수가 다른 배열이다. 3. 메소드에서 배열을 리턴할때는 리턴 타입을 배열로 선언을 하고 리턴할때 배열의 변수명 만 리턴하면 된다. (배열의 레퍼런스 리턴) 4. 자바에서는 예외 처리를 위해서 try - catch - finally 문을 사용한다. try블록 안에는 예외 발생가능성이 존재하는 실행문을 넣고, catch블록에는 처리할 예외 타입을 선언하고 예외처리문을 넣는다. finally블록은 예외발생에 관계없이 무조건실행되는 문장이며 생략가능 하다. 5. NullPo..

안드로이드 애니메이션 (Drawable, Property, MotionLayout)

안드로이드 애니메이션 (Drawable, Property, MotionLayout) 1. 안드로이드에서 애니메이션은 움직이는뷰, 뷰전환 등을 하기위해서 사용되며, 앱을 좀더 고급스럽게 만들어줄 수 있다. 안드로이드 에는 다양한 애니메이션 지원 API를 가지고있다. 2. Drawable 애니메이션은 여러장으로 만드는 애니메이션이며, 애니메이션에 포함될 이미지들의 리스트를 갖는 리소스를 생성한다. (가장 기본적인 애니메이션) 3. Property 애니메이션은 객체의 속성을 시간에 따라 변경하여 애니메이션효과를 만드는 것이다.ex) x, y좌표를 시간에따라 변경 ValueAnimator: 값에 대한 애니메이터, ObjectAnimator: 객체의 속성에 대한 애니메이터, AnimatorSet: 애니메이터들의 ..

Programming/Android 2021.09.23

오픈소스소프트웨어 (git, init, commit, branch, merge, push, stage, gitignore)

1. 최초의 버전관리시스템은 유닉스환경에서 사용 가능한 SCCS 이다. 깃은 현재 가장 많이 사용되는 분산형 VCS 이다. 깃의 모든 소스는 깃허브에 공개 되어있다. 2. 깃은 네트워크 연결없이도 로컬 컴퓨터의 소스코드는 버전관리를 할 수 있으며, 협업 개발에 효율적이다. (코드공유유용) 깃에서 commit은 수정이력을 기록하는 것이다. 깃에서 원격저장소는 중앙 서버의 역활이다. (원격저장소를 사용하면 코드를 외부에도 공개가능) 3. init: 일반폴더를 git 저장소로 변경한다. commit: 변경된 코드이력 기록한다. branch: 분리된 코드이력을 기록한다. mrerge: 분리된 이력을 기존 이력과 통합한다. push: 로컬저장소의 이력을 서버로 전송하고 공유한다. 4. git repository는..

데이터통신 기초 (호스트, 패킷, bps, 이더넷, 패킷전송지연, 패킷교환, 라우팅, 회선교환, 종단시스템)

데이터통신 기초 (호스트, 패킷, bps, 이더넷, 패킷전송지연, 패킷교환, 라우팅, 회선교환, 종단시스템) 1. 호스트란 네트워크를 실행 할 수 있는 시스템이다. ex) pc, server 통신링크는 전송매체로서 광섬유, 구리선, 라디오 등이 있으며, 대역폭(bandwidth)에 따라서 네트워크의 속도가 결정된다. 2. 패킷단위로 쪼개진 데이터들을 라우터가 길을 정하여 전달한다. 인터넷은 다양한 네트워크들이 연결된 것이다. 3. 네트워크의 구조에서 네트워크 가장자리는 호스트로서 클라이언트와 서버를 표현하며, 네트워크 중심은 상호연결되어있는 라우터들을 표현한다. 4. bps는 bits per sceond의 약자로서 네트워크의 속도를 나타낸 다. (대역폭에 따라 달라짐) 5. 학교 또는 기업에서는 이더넷을..

[자바] 객체지향언어2 기초정리 (반복문, continue, break, 배열, 비트연산, OR, AND, XOR, NOT)

[자바] 객체지향언어2 기초정리 (반복문, continue, break, 배열, 비트연산, OR, AND, XOR, NOT) 1. 자바에서 반복문은 c와 마찬가지로 for문 while문 do-while문이 있다. 반복문에서 continue는 반복문을 끝내지는 않고 다음반복을 진행하는 것이다. break 문은 반복문을 종료시킨다. 중첩 반복문일 경우 자신이 속해있는 반복문 하나만 종료시킨다. 2. 자바에서 입력받을때 Scanner을 사용한다. 자바에서 비교할때 equals 를사용한다. ex) if(temp.equals("abc")); 3. 배열(array)에서 인덱스는 0부터 시작하며, 같은 타입인 데이터들을 순차적으로 저장한다. ex) int array[] = new int[100]; 배열 인덱스에서 음..

안드로이드 알림기능 관련내용 (알림,알림채널)

안드로이드 알림기능 관련내용 (알림,알림채널) 1. 안드로이드에 있는 알림기능은 UI와 별로도 앱과 관련한 정보를 제공하는 기능으로서, 보통 단말기 상단에 표시된다. 2. 알림채널이란 알림을 그룹화하여 알림 활성화 및 방식변경을 할수있으며, 안드로이드 8.0 이상부터는 알림을 만들기전에 알림채널을 먼저 만들어야한다. 3. 알림을 만들기위해서는 NotificationCompat.Builder 객체의 알림에 대한 정보를 지정해야한다. setContentTitle(): 제목 setContentText(): 텍스트 setSmallcon(): 작은아이콘 NotificationCompat.Builder.build()를 호출하면 Notification 객체를 반환하고 NotificationManagerCompat.n..

Programming/Android 2021.09.14

오픈소스소프트웨어 기초 (OSS 라이선스, LGPL, GPL, MPL, BSD, Apache)

오픈소스소프트웨어 기초 (OSS 라이선스, LGPL, GPL, MPL, BSD, Apache) 1. OSS라이선스는 SW에 대한 사용 허가권으로서, 허용범위 및 의무사항을 준수한다면 자유롭게 사용가능하다. 2. OSS라이선스의 공통적인 준수사항으로는 저작권관련문구유지, 제품명중복방지 등이 있다. 3. 라이선스에 따른 의무사항으로는 소스코드공개, 특허, 사용여부명시가 있다. 4. GPL라이선스는 강력한 제약조건을 가지고 있으며, SW를 수정 하거나 라이브러리를 링크할 경우 개발된 SW를 공개및 GPL로 배포해야한다. a GPL V2: 저작권고지, 소스공개, 저작권표기유지, 소프트웨어 유료판매시 소스코드 무료공개를 해야한다. GPV V3: V2의 항목을 유지하면서 소스에 대한 설치정보를 함께 제공해야하며, ..

데이터 통신 기초 정리2 (회선교환방식, 패킷교환방식, Sequencing, 흐름제어, 혼잡제어, 에러정정, TCP, IP, Buffering)

1. 데이터 통식의 교환방식에서 교환방식은 정보를 주고받는 경로를 정해주는 방식이다. 2. 회선 교환방식(circuit)은 데이터를 전송하기전 물리적 회선을 결정한 후 독점적으로 사용하는 방식이다. 전송이 끝나면 돌려준다. ex) 전화 (독점적O) 3. 패킷 교환방식(packet)에서 패킷이란 전송정보에 주소 및 제어신호가 부가된 데이터 전송단위이며, 패킷교환방식은 경로가 물리적으로 정해지지 않은 상태에서 패킷마다 다른선로를 이용하는 방식이다. 인터넷에서 이용하는 방식으로 빠르고 신뢰성이 높다. (인터넷망이라고 생각하면된다.) (독점적X) 4. 패킷교환방식안에서 연결지향과 비연결형이 존재하는데, 연결지향은 송신과 수신프로세스와의 논리적인 경로를 설정한다. ex) TCP 비연결형은 경로없이 각각의 데이터 ..

반응형