Strong Root

Chrome 웹 스토어(링크)에서 아래 그림처럼 "android sdk search"로 검색하고 맨 위에 것을 다운 받습니다. 저는 이미 받아서 평가하기 버튼인데, 여러분들은 "+ 무료" 버튼일 것입니다.







설치가 완료되면 주소창에 "ad" 를 타이핑한 후 키보드의 "Tab"키를 누르면, 아래 그림처럼 android sdk search 확장 프로그램이 적용되며 검색 준비상태가 됩니다.







"Activity"로 검색해서 아래 그림처럼 맨 위를 클릭해보겠습니다.







가장 위의 "view source"를 클릭합니다.







뚜둔!! 엄청납니다. 소스를 직접 까볼 수 있습니다. 많이 볼수록 우리 실력도 쑥쑥!



문제를 보시려면 여기를 클릭


이하는 코드입니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <stdio.h>
#include <string.h>
 
#pragma warning(disable:4996)
 
int cache[101];
 
int getCount(int n) {
    if (n == 1) {
        return 1;
    }
    if (n == 2) {
        return 2;
    }
 
    int& ret = cache[n];
    if (ret != -1) {
        return ret;
    }
 
    return ret = ((getCount(n - 1) + getCount(n - 2)) % 1000000007);
}
 
int main() {
    int C;
    scanf("%d", &C);
 
    for (int i = 0; i < C; i++) {
        int n;
        scanf("%d", &n);
 
        memset(cache, -1sizeof(cache));
        printf("%d\n", getCount(n));
    }
 
    return 0;
}
cs

문제를 보시려면 여기를 클릭


이하는 코드입니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#include <string.h>
#include <stdio.h>
 
#pragma warning(disable:4996)
 
#define MAX(a, b) ((a) > (b) ? (a) : (b))
 
int board[101][101];
int cache[101][101];
 
int n;
 
int getSum(int y, int x) {
    if (y >= n - 1) {
        return board[y][x];
    }
 
    int& ret = cache[y][x];
    if (ret != -1) {
        return ret;
    }
 
    return ret = (board[y][x] + MAX(getSum(y + 1, x), getSum(y + 1, x + 1)));
}
 
int main() {
    int C;
    scanf("%d", &C);
 
    for (int i = 0; i < C; i++) {
        scanf("%d", &n);
 
        for (int j = 0; j < n; j++) {
            for (int k = 0; k <= j; k++) {
                scanf("%d", &board[j][k]);
            }
        }
 
        memset(cache, -1sizeof(cache));
        printf("%d\n", getSum(00));
    }
 
    return 0;
}
cs

환경설정 및 프로젝트 생성법은 건너뜁니다.






이클립스 혹은 안드로이드 스튜디오를 실행합니다. (저는 스튜디오를 사용합니다만 이클립스로 하셔도 무관합니다)


안드로이드 프로젝트를 하나 생성합니다. 그냥 다음, 다음 누르면서 가장 기본으로만 생성하시면 됩니다.






[그림1-1] 목표1


먼저 간단하게 위와 같은 화면을 구성해보겠습니다.


안드로이드 앱은 기본적으로 화면 하나당 Java파일 1개, xml파일 1개가 필요합니다.






먼저 xml부터 작성해볼까요?


기본으로 생성된 xml 파일 내용을 전부 지워버리고 아래와 같이 코딩합니다.



[그림1-2] activity_my.xml


위와 같이 xml 내용을 입력한 후 미리보기(preview)를 보시면 [그림1-1]과 같은 모습이 보입니다. 이제 뷰는 완성되었습니다.






xml을 작동시키기 위한 Java파일을 작성해보겠습니다.


기본으로 생성된 Java 파일 내용을 아래와 같이 수정합니다. (단, package와 class명은 아래 예제를 따라하지 않고 기본 생성된 것을 그대로 둡니다)


[그림1-3] MyActivity.java (맨위 package는 개인마다 다릅니다)


여기까지 작성한 후 휴대폰을 pc에 연결하고 Run을 시켜봅니다.


어플이 실행되며 xml 미리보기에서 봤던 것과 같은 화면이 여러분의 휴대폰에서 보일 것입니다.











우리가 작성한 Java파일을 이해해봅시다.


Activity를 상속받는다.


→ Activity가 뭘까요?


Activity는 안드로이드 앱에서 화면을 구성하는 가장 기본적인 요소입니다.


이미 구글이 Activity 클래스를 작성해놓았으며, 안드로이드는 오픈소스이므로 실제 코드도 직접 확인할 수 있습니다. (소스보는 법)


소스를 보셨다면 아시겠지만, 소스가 꽤 긴데 우리 앱 개발자들은 그것을 상속받아서 필요한 부분만 수정하게 됩니다.







이번 예제에서는 위와 같이 onCreate()라는 함수만 수정하였습니다.


사실 거의 수정한 것도 없습니다.







원래 하던 일을 다 하고,







내용물을 아까 작성했던 xml로 설정하는 부분만 추가했습니다.


Activity는 항상 뷰(xml)를 포함하고 있으므로, 일반적으로 앱을 만들 때 최소한 onCreate()만큼은 이런 식으로 수정을 합니다.




결론적으로 우리는 구글이 작성해놓은 Activitiy 클래스에



이 단 한줄만 추가했고, 나머지는 기존의 소스를 그대로 사용한 셈입니다.











안드로이드 입문을 축하합니다. 




<초급2 - 버튼 클릭 바로가기>