Android 입문자를 위한 Tutorial - 1. 설치 및 환경설정

Mobile Programming/Android 2010. 9. 9. 15:26

우리 교수님이 영상처리, matlab 코딩 과목을 안드로이드로 바꿔버렸다. 4학년 과목이라 하기엔 폭발적인 반향을 일으켜 수강생이 좀 되는 안드로이드 과목...
아예 처음부터( 설치부터 ) 수업을 한다. 
학생들이 직접 공부하고 발표하는 형태로 이뤄져있다.

어쨌든 어제 오늘로 환경설정이 모두 끝났는데 , 그 내용을 포스팅 해보려고 한다.
( 자료는 전남대 멀티미디어 연구실 홈페이지 출처다 )

아, 중요한 사항 하나..
절대로 디렉토리에 한글이 들어가도록 만들지 말자.
한글이 들어가면 유니코드 문제로 인식을 하지 못한다. 


1. 자바 개발 툴킷

http://developers.sun.com/downloads

다운로드(1.6.0.20) : windows x86  /  linux x86

※ 꼭 JDK를 받아야 한다. JDE는 실행용 프로그램이다.

 

2. 이클립스

http://www.eclipse.org/downloads/   

다운로드 : windows x86  /  linux x86

※ 최신 버전 Eclipse IDE for Java Developers를 다운받는다.

 

3. 안드로이드 SDK

http://developer.android.com/sdk  

다운로드(r06) : windows x86  /  linux x86

적당한 위치에 압축을 풀고, 폴더 이름을 "android"같이 접근하기 쉽게 바꿔둔다.

 

4. 안드로이드 이클립스 ADT 플러그인

이클립스를 실행. (3.5 Galileo 기준)

Help > Install New Software  클릭

(3.4 Ganymede Available Software 텝에서 입력)

 

Work with: 란에

https://dl-ssl.google.com/android/eclipse/   를 입력후 add...

만약 실패 하면 "https" "http"로 바꾸어 입력.

"Developers Tools"를 체크하고 Next>Finish 클릭.

이클립스 재시작.

 

참고http://developer.android.com/sdk/eclipse-adt.html

 

5. 이클립스에서 안드로이드 SDK 위치 설정

이클립스 실행 > windows >Preferences  클릭.

 

왼쪽리스트에서 "Andorid" 클릭.

SDK Location 에 압축을 풀어둔 android sdk 폴더 위치를 입력한 후

Apply > OK 클릭

 

6. 안드로이드 에뮬레이터 설정

이클립스를 실행. (3.5 Galileo 기준)

Window > Android SDK and AVD Manager” 를 클릭

 

혹은 명령 프롬프트에서 android 라고 입력하면 "Android SDK and AVD Manager" 가 실행된다

 

 

 

첫 실행 시에는 가상장치가 설정되어 있지 않아 New를 클릭해 새로 만들어야 하는데,

패키지가 설치되어있어서 만들 수 가 없다.

 

Available Package를 눌러 패키지를 모두 설치하도록 하자

( 필요한 버전만 설치해도 된다. 넥서스원은 2.2 )

 

 

설치가 완료되면 다시 Virtual Devices 항목으로 돌아와서 New를 클릭

"Name" 은 가상 장치이름을 적당히 적어주고

"Target" 에 가상 장치의 android 버전을 선택한다

 

 

Crate AVD 를 누르면 생성된다.

 

 

가상장치가 하나 생성되었다 장치를 선택하고 Start > Launch 를 누르면 에뮬레이터가 작동된다.

 

 

환경에 따라 위의 로딩 시간이 길게 걸릴 수 있다.

로딩 시간이 끝나면 다음과 같이 안드로이드 화면이 나온다.

 

 
만약 run을 하려하는데 빨간원의 경고창이 뜬다면(정확한 내용이 생각안난다) run의 debugconfiguration, 왼쪽리스트에서 프로젝트 선택, 오른쪽에 Browse를 통해 설정해 주도록 하자~.  

동맹 휴업 (Hartal)

Programming/Algorithm 2010. 9. 3. 14:49

방글라데시의 정당들은 자신의 세를 과시하기 위해 정기적인 동맹 휴업(파업)을 추진하는데, 이 동맹 휴업은 경제에 상당한 피해를 끼칠 수 있다. 이 문제에서는 각 당을 동맹 휴업 지수(hartal parameter)라고 부르는 h라는 양의 정수로 나타낼 수 있다고 하자. 이 동맹 휴업 지수는 한 동맹 휴업과 다음 동맹 휴업 사이의 기간을 날짜 수로 표시한 값이다.

세 개의 정당이 있다고 생각해보자. 그리고 i번째 당의 동맹 휴업지수를 hi라고 할때 h1 =3, h2 =4, h3 = 8이라고 가정하자. N 일(N=14)일 동안의 세 당의 행보를 시뮬레이션하면 다음과 같이 표시할 수 있다. 시뮬레이션은 항상 일요일에 시작하며 금요일이나 토요일에는 동맹 휴업이 없다.

 요일 1
일 
 2
3
화 
4
수 
5
목 
6
금 
7
토 
8
일 
9
월 
10
화 
11
수 
12
목 
13
금 
14
토 
 1 정당              X        
 2 정당                   X    
 3 정당               X            
 휴업      1            5    
 
이 결과를 보면 14일 동안 정확하게 다섯 번의 동맹 휴업(3,4,8,9,12일)이 있음을 알 수 있다. 6일은 금요일이기 때문에 동맹 휴업이 일어나지 않는다. 결국 2주 동안 근무 일수로 5일의 동맹 휴업이 실시된다.

몇 정당의 동맹 휴업 지수와, 어떤 정수 N이 주어졌을 때, N일 가운데 동맹 휴업으로 인해 일을 하지 않은 근무 일수를 계산하라.

입력

입력의 첫번째 줄에는 입력될 테스트 케이스의 개수를 나타내는 하나의 정수 T가 들어있다. 각 테스트 케이스의 첫번째 줄에는 한 개의 정수N(7<=N<=3,650)이 들어있으며 시뮬레이션을 돌릴 기간(날 수)을 나타낸다. 그 다음 줄에는 정당의 개수를 나타내는 정수 P(1<=P<=100)이 들어간다. 그 다음부터 시작하는 P개의 줄 가운데 i번째 줄(1<=i<=P)에는 i번째 정당의 동맹 휴업 지수를 나타내는 양의 정수 hi(7의 배수는 아님)가 들어있다.

출력

각 테스트 케이스에 대해 손실된 근무 일수를 한 줄에 하나씩 출력한다.

입력 예

2
14
3
3
4
8
100
4
12
15
25
40

출력 예

5
15


역시 문제의 풀이보다 문제의 이해가 어려웠던 문제 ㅡㅡ ;;
그러나 막상 알면 쉽다. 이 문제는 해당 시뮬레이션 기간동안 그냥 금,토를 제외한 휴업날을 카운트만하면 된다.

'Programming > Algorithm' 카테고리의 다른 글

ACM-ICPC 2009년도 기출 _ Candy War  (0) 2010.10.01
암호 깨기 (Crypt Kicker)  (0) 2010.09.30
포커 패(Poker Hands)  (0) 2010.09.01
유쾌한 점퍼(Jolly Jumpers)  (0) 2010.08.31
호주식 투표법(Australian Voting)  (0) 2010.08.27

포커 패(Poker Hands)

Programming/Algorithm 2010. 9. 1. 21:19


포커용 카드는 52개의 카드로 이루어진다. 각 카는 클럽, 다이아몬드, 하트, 스페이드 ( 입력데이터에서는 C,D,H,S 로 표기 ) 의 값을 갖는다. 점수를 매길 때 위에 열거한 순서대로 등급이 매겨지며 2가 가장 낮고 에이스가 가장 높다. 무늬는 값에 영향을 끼치지 않는다.

포커 패는 다섯 장의 카드로 구성되며 다음과 같은 순서대로 등급이 매겨진다.

하이 카드 : 아래에 있는 것 가운데 어떤 범주에도 속하지 않는 패는 그 중 가장 높은 카드의 값에 따라 등급이 매겨진다. 가장 높은 카드의 값이 같으면 그 다음 카드, 그 다음 카드도 같으면 그 다음 카드, 이런 식으로 등급이 매겨진다.

원 페어 : 다섯 장의 카드 가운데 두 장이 같은 경우. 같은 원 페어끼리 맞붙는 경우에는 더 높은 값을 가지는 원 페어 패에 더 높은 등급이 매겨진다. 값까지 같은 경우에는 나머지 카드의 값에 의해 더 높은 패가 결정된다.

투 페어 : 두 쌍의 카드가 같은 값을 가지는 경우, 투 페어끼리 맞붙는 경우에는 그 중 더 높은 페어의 값에 의해 더 높은 등급이 매겨진다. 두 쌍의 값이 모두 같으면 남은 카드에 의해 더 높은 패가 결정된다.

쓰리 카드 : 다섯장 가운데 세 장이 같은 값을 가지는 경우. 쓰리 카드끼리 맞붙는 경우에는 세장의 같은 값을 가지는 카드의 값에 의해 더 높은 패가 결정된다.

스트레이트: 다섯 장의 카드가 연속적인 값을 가지는 경우. 스트레이트끼리 맞붙을 경우에는 가장 높은 카드에 의해 더 높은 패가 결정된다.

플러시 : 다섯 장의 카드의 무늬가 모두 같은 경우, 플러시끼리 맞붙을 경우에는 하이 카드의 규칙에 따라서 더 높은 패가 결정된다.

풀 하우스 : 세 장의 카드가 같은 값을 가지고 나머지 두 장의 카드가 같은 값을 가지는 경우. 같은 값을 가지는 세장의 카드의 우열에 의해 더 높은 패가 결정된다.

포 카드 : 네 장의 카드가 같은 값을 가지는 경우. 포카드끼리 맞붙는 경우에는 네 장의 같은 값을 가지는 카드의 값에 의해 더 높은 패가 결정된다.

스트레이트 플러시 : 다섯 장의 카드가 무늬가 같으면서 모두 연속적인 값을 가지는 경우. 패에 있는 것 중 가장 높은 카드에 의해 더 높은 패가 결정된다.

몇 쌍의 포커패를 비교, 어느쪽이 이겼는지 아니면 무승부인지 알아내자.

입력

입력 파일은 여러 줄로 구성되며 각 줄에는 열 장의 카드를 나타내는 값이 들어간다. 앞에 있는 다섯 장의 카드는 "Black"이라는 참가자의 카드고 뒤에 있는 다섯장의 카드는 "White"라는 참가자의 카드다.

출력

입력된 각 줄에 대해 다음 중 한 가지가 들어있는 행을 출력한다.

Black wins.
White wins.
Tie.

입력 예

2H 3D 5S 9C KD 2C 3H 4S 8C AH
2H 4S 4C 2D 4H 2S 8S AS QS 3S
2H 3D 5S 9C KD 2C 3H 4S 8C KH
2H 3D 5S 9C KD 2D 3H 5C 9S KH

출력 예

White wins.
Black wins.
Tie.
Tie.

포커를 몰라서 이거 입력 예를 문자로 봐도 잘 모르겠다..;;
책의 출력예가 틀린 것 같아 고쳤다. 4개의 답이 맞는지 확인해 주시기 바란다.
예를 들어, 첫번째 게임이 책에선 Tie라고 나와있었는데, 두 패다 하이 카드고 white에게 A패가 있으므로 white가 승리하는게 맞는 것으로 보인다.


'Programming > Algorithm' 카테고리의 다른 글

ACM-ICPC 2009년도 기출 _ Candy War  (0) 2010.10.01
암호 깨기 (Crypt Kicker)  (0) 2010.09.30
동맹 휴업 (Hartal)  (0) 2010.09.03
유쾌한 점퍼(Jolly Jumpers)  (0) 2010.08.31
호주식 투표법(Australian Voting)  (0) 2010.08.27