본문 바로가기

전체 글571

SL4A(Scripting Layer for Android) (2) SL4A has three main components. They are as follows - Script interpreters, Android RPC Client, Facades Script Interpreters : SL4A can be extended by incorporating new scripting languages dynamically by developing a new SL4A interpreter for that scripting language. The client establishes a Remote Procedure Call(RPC) connection to SL4A, and allows scripts to interact with the Android Framework. Da.. 2021. 6. 23.
SL4A(Scripting Layer for Android) (1) https://www.tutorialspoint.com/sl4a/index.htm SL4A Tutorial - Tutorialspoint SL4A Tutorial The Scripting Layer for Android (SL4A) is a library that helps write scripts targeting the Android Platform. SL4A supports a number of scripting languages like Perl, Python, JRuby, PHP etc. It can also be extended to support new languages. Wh www.tutorialspoint.com The Scripting Layer for Android(SL4A) is .. 2021. 6. 23.
알고리즘 문제 해결 전략2 19장 큐와 스택, 데크 (1) 19.1 도입 현실 세계의 규칙을 추상화하는 추상화 자료 구조의 대표적인 예로 큐와 스택, 데크가 있음. 큐와 스택, 데크가 중요한 이유는 흔히 사용하게 되는 자료 구조의 형태에 이름을 붙였다는 데 있음. 큐와 스택, 데크 큐와 스택, 데크는 일렬로 늘어선 같은 형태의 자료들을 저장함. 이때 세 자료 구조들을 구분하는 것은 어느 쪽 끝에서 자료를 넣고 뺄 수 있는가입니다. 컴퓨터는 내부적으로 스택을 사용해 함수들의 문맥을 관리함. 데크는 양쪽 끝에서 자료들을 넣고 뺄 수 있는 자료 구조를 말함. 데크를 이용하면 스택과 큐를 모두 구현할 수 있음. 19.2 큐와 스택, 데크의 구현 연결리스트의 경우 노드의 할당과 삭제 그리고 포인터를 따라가는 데 드는 데 시간이 걸리기 떄문에 여결 리스트가 가장 효율적인 .. 2021. 6. 22.
알고리즘 문제 해결 전략2 18장 선형 자료 구조(2) 18.5 문제: 조세푸스 문제 마지막 두 명 중 하나가 되기 위해서는 조세푸스는 첫 번째 병사로부터 몇 자리 떨어진 곳에 있어야 할까요? 모든 문제는 기본 자료구조로 풀림. 배열, 연결링크드 리스트. 이 자료 구조는 메모리와 데이터로 만들어짐. 문제 풀이를 위해서 필요한 자료 구조를 선태갛기 위해서는 문제를 이해하고 제대로 정의해야 함. 각 테스트 케이스에 두 개의 정수로, 마지막 살아남는 두 사람의 번호를 오름차순으로 출력함. 18.6 풀이: 조세푸스 문제 조세푸스 문제는 연결 리스트로 풀 수 있는 전형적인 문제임. 한 사람이 죽을 때마다 포인터를 (K-1)번 옮기기 때문에, 전체 시간 복잡도는 O(NK)가 됨. 이 문제에서는 N, K가 모두 1000 이하의 값이기 때문에 충분히 시간 안에 수행할 수 .. 2021. 6. 22.
안드로이드 프로그래밍 Next Step 5장 액티비티 액티비티는 앱에서 화면의 기본 단위가 되고 가장 많이 쓰이는 컴포넌트임 메서드가 어디까지 호출되는지는 액티비티가 화면에 보이는지 여부와 포그라운드 상태를 체크해보면 알기 쉬움. targetSdkVersion에 따른 onSveInstanceState()호출 시점 2021. 6. 22.
안드로이드 프로그래밍 Next Step 4장 Context Context 클래스 Context가 없으면 액티비티를 시작할 수도, 브로드캐스트를 발생시킬 수도, 서비스를 시작할 수도 없음. 리소스에 접근할 떄도 Context를 통해서만 가능함. Context는 여러 컴포넌트의 상위 클래스이면서 Context를 통해서 여러 컴포넌트가 연결돼 있으므로 컴포넌트를 살펴보는 것이 컴포넌트를 이해하는 데도 도움이 됨. ContextImpl은 앱에서 직접 사용할 수 있는 퍼블릭 클래스는 아니지만, 소스는 공개되어 있으니 한번씩은 살펴보도록 함. ContextImpl은 컴포넌트별로 있음 ContextImpl의 메서드 Context와 하위 클래스 객체 지향의 원칙에서 상속보다는 구성을 사용하라고 하는데, 위 클래스 다이어그램을 보면 원칙에 들어 맞는다는 것을 알 수 있음. 이렇.. 2021. 6. 22.
알고리즘 문제 해결 전략2 18장 선형 자료 구조(1) 18.1 도입 일렬로 늘어선 같은 종류의 자료 여러 개를 저장하기 위한 가장 기초적인 자료구조는 배열. 동적 배열과 연결 리스트에 대해 다룸. 18.2 동적 배열 배열의 큰 문제 중 하나는 처음에 배열을 선언할 때 배열의 크기를 지정해야 함. 그 이상의 자료를 집어넣을 수 없다는 점임. 동적 배열은 배열이 갖는 다음과 같은 특성을 그대로 이어 받음. 원소들은 메모리의 연속된 위치에 저장됨. 주어진 위치의 원소를 반환하거나 변경하는 동작을 O(1)에 할 수 있음. 동적으로 할당받은 배열과 동적 배열은 서로 별개의 개념임. 동적 배열 클래스는 현재 배열의 크기와 동적으로 할당받은 배열을 가리키는 포인터를 다음과 같이 저장하고 있음. 메모리를 할당받을 때 배열의 크기가 커질 때를 대비해서 여유분의 메모리를 미.. 2021. 6. 22.
알고리즘 문제 해결 전략2 17장 부분 합(2) 17.2문제: 크리스마스 인형 산타 할아버지는 한 번 주문할 때마다, 주문한 상자에 있는 인형들을 모두 꺼내서 각각을 K명에게 정확히 같은 수만큼 나누어 주고, 남는 인형이 없도록 함. 17.3 풀이: 크리스마스 인형 두 가지의 서로 다른 부분 문제로 구성됨. 두 문제는 모두 부분 합을 이용해서 풀 수 있음. 어린이들에게 인형을 모두 나눠주려면 인형의 총수가 K의 배수여야 함. (psum[T] - psum[H-1]) mod K = 0 이것을 전개하면 psum[T] mod K = psum[H-1] mod K psum[]에서 중요한 것은 K로 나눈 나머지일 뿐이라는 사실을 알 수 있음. 따라서 이 문제는 psum[]을 아래와 같이 정의함. 이 아이디어는 이 문제를 해결하는 데 중심 역할을 함. 구입할 수 있.. 2021. 6. 21.
알고리즘 문제 해결 전략2 17장 부분 합(1) 17.1 도입 부분 합이란 별 것이 아니고, 배열의 각 위치에 대해 배열의 시작부터 현재 위치까지의 원소의 합을 구해 둔 배열임. scores[]의 부분 합 psum[]의 각 원소를 다음처럼 정의할 수 있음. 별 것 아닌 단순한 아이디어이지만 부분 합은 종종 아주 유용하게 이용됨. 부분 합 계산하기 vector partialSum(const vector& a) { vector ret(a.size()); ret[0] = a[0] for (int i = 1; i < a.size(); ++i) ret[i] = ret[i - 1] + a[i]; return ret; } int rangeSum(const vector& psum, int a, int b) { if (a == 0) return psum[b]; ret.. 2021. 6. 21.