도전과제 21,22 : 책 정보 저장과 조회 기능 만들기 (Do it Android 앱 프로그래밍) [JAVA]
코딩/Do it Android [JAVA] 2020. 8. 31. 17:51

도전과제 21,22 탭으로 구성된 화면을 만들고 첫 번째 탭 화면에서는 책 정보를 저장, 두 번째 탭 화면에서는 책 정보를 조회할 수 있도록 합니다. 탭 모양의 화면을 구성하고 두 개의 탭 버튼을 추가합니다. 첫 번째 탭에서는 책 정보를 저장할 수 있도록 합니다. 이 화면은 도전! 17의 미션과 같습니다(제목,저자,내용 입력 후 [저장] 버튼 누르면 데이터베이스에 저장됨.) 두 번째 탭에서는 책 정보를 조회하여 리스트로 보여줄 수 있도록 합니다. 리싸이클러뷰의 각 아이템에는 책 제목과 저자가 표시됩니다. 책 정보를 저장하거나 조회할 때 모두 데이터베이스를 사용합니다. 즉, 책 정보를 저장할 때는 데이터베이스에 저장하고 조회할 때는 데이터베이스에 저장된 데이터를 가져와서 보여줍니다. 참고할점 데이터베이스와..

도전과제 20 : RSS 조회 내용을 그리드뷰로 보여주기 (Do it Android 앱 프로그래밍) [JAVA]
코딩/Do it Android [JAVA] 2020. 8. 31. 01:29

도전과제 20 RSS 사이트를 조회하여 최신 기사를 받은 후 격자 모양으로 보여주는 기능을 만들어 보세요. rss 사이트는 연예, 경제 등 어떤 내용이든 상관없습니다. RSS 기사를 조회할 수 있는 화면을 구성합니다. 화면의 아래쪽에 [조회] 버튼을 배치하고 나머지 공간은 리싸이클러뷰가 차지하도록 합니다. [조회] 버튼을 누르면 지정한 RSS 사이트를 조회하여 최신 기사를 가져온 후 리사이클러뷰에 표시합니다. RSS 사이트 주소는 미리 소스 코드에 설정합니다. 리싸이클러뷰의 각 아이템에 보일 데이터로는 아이콘과 제목, 내용이 표시되도록 합니다. 참고할점 RSS 사이트를 조회해서 가져온 데이터는 태그로 구성되므로 RSS 조회 결과 문서를 파싱한 후 각 기사를 리싸이클러뷰의 아이템으로 추가해야 합니다. 풀이..

도전과제 19 : 웹으로 가져온 데이터 보여주기 (Do it 안드로이드 앱 프로그래밍)[JAVA]
코딩/Do it Android [JAVA] 2020. 8. 30. 02:02

도전과제 19 웹으로가져온 데이터 원본과 함께 웹뷰에서 해당 페이지도 같이 볼 수 있도록 합니다. HTML 문서를 웹뷰에서 보면 웹브라우저에서 보는 것처럼 표시 됩니다. 웹사이트 주소를 입력할 수 있는 입력상자와 버튼을 화면 상단에 배치합니다. [요청] 버튼을 누르면 웹으로 데이터를 가져옵니다. 화면의 가운데 부분에는 가져온 데이터를 보여주도록 합니다. 화면의 아래쪽에는 웹뷰를 추가하고 웹으로 가져온 데이터를 웹뷰에 넣어 보여줍니다. 참고할 점 웹사이트에서 가져와야 할 페이지나 이미지는 여러 개일 수 있습니다. 따라서 웹뷰에 표시되는 웹 문서는 완벽하지 않을 수 있습니다. 풀이 메인 화면은 아래와 같이 위에는 웹의 html 파일을 보여줄 스크롤 뷰, 아래는 위의 html파일을 바탕으로 다시 구축할 웹뷰로..

도전과제 18 : 앨범의 사진을 애니메이션으로 보여주기 (Do it 안드로이드 앱 프로그래밍)[JAVA]
코딩/Do it Android [JAVA] 2020. 8. 29. 16:03

도전과제 18 단말의 앨범에 있는 사진을 가져와서 하나씩 보여주는 기능을 만들어 보세요. 각각의 사진이 보일 때는 우측에서 좌측으로 애니메이션이 적용되도록 합니다. 단말의 앨범에 들어 있는 사진 정보를 가져와서 화면에 보여줍니다. 화면에는 두 개의 사진이 한 번에 보이도록 하고 두 개의 사진이 들어 있는 패널은 애니메이션을 적용해서 다음 패널로 넘어가도록 합니다. 화면의 위쪽에는 '현재 사진의 순서/사진의 전체 개수' 정보를 표시합니다. 하나의 사진 정보에는 왼쪽에 이미지, 오른쪽에 날짜가 표시되도록 합니다. 5초마다 사진 정보가 바뀌도록 애니메이션을 설정합니다. 참고할 점 단말의 앨범에 들어 있는 사진은 내용 제공자(Content Provider)를 사용해 가져올 수 있습니다. 사진 썸네일(Thumbn..

도전과제 17 : 패널을 번갈아가며 보여주기 (Do it 안드로이드 앱 프로그래밍) [JAVA]
코딩/Do it Android [JAVA] 2020. 8. 29. 02:19

도전17 : 패널을 번갈아가며 보여주기 고객 정보를 보여주는 두 개의 패널을 만들고 각 패널을 번갈아가면서 보여주도록 애니메이션을 적용해 보세요. 애니메이션은 우측에서 좌측으로 이동하도록 적용할 수 있습니다. 고객 정보를 보여주는 패널 화면을 구성합니다. 패널은 두 개를 만들고 한 번에 하나의 패널이 보이도록 합니다. 패널 위쪽에는 고객 이름, 그 아래에는 연락처와 주소가 간단하게 보이도록 합니다. 패널을 하나씩 보여주되 5초 간격으로 다음 패널이 보이도록 애니메이션을 적용합니다. 애니메이션은 오른쪽에서 왼쪽으로 이동하는 애니메이션을 적용합니다. 참고할점 오른쪽에서 왼쪽으로 움직이는 애니메이션 동작을 우선 res/anim 폴더 안에 xml 파일로 정의한 후 패널에 적용시킵니다. 풀이 우선 anim 폴더에..

도전과제 16 : 웹브라우저 화면 구성 (Do it 안드로이드 앱 프로그래밍) [JAVA]
코딩/Do it Android [JAVA] 2020. 8. 28. 23:54

도전과제 16 주소를 입력하여 웹을 검색하는 웹브라우저 화면을 만들어 보세요. 화면의 위쪽에는 주소를 입력하는 패널이 있고, 이 패널에 주소를 입력한 후 [이동] 버튼을 누르면 사라지게 하여 결과 웹페이지만 보이도록 합니다. 웹페이지를 보여줄 수 있도록 웹브라우저를 포함하는 레이아웃을 구성합니다. 레이아웃을 구성할 때 화면의 위쪽에는 주소를 입력할 수 있는 입력상자와 [이동] 버튼이 들어가도록 패널을 배치합니다. 주소를 입력한 후 [이동] 버튼을 누르면 해당 페이지로 이동하여 웹페이지 화면을 보여주고 상단의 패널은 슬라이딩으로 사라지게 만듭니다. 상단의 패널을 다시 사용하고 싶을 때 패널을 볼 수 있도록 [패널 열기[ 버튼을 배치합니다. [패널 열기[ 버튼을 누르면 상단의 패널이 슬라이딩으로 보이도록 합..

8. 탐색 - 선형 탐색, 이진 탐색, 이진 탐색 트리, 해시 탐색
알고리즘/스터디 2020. 8. 25. 03:15

선형탐색 순서대로 하나 하나씩 찾는 방법. $O(N)$의 시간복잡도. public int LinearSearch(int data[], int key){ for(int i=0; i 폴딩이라고 한다. 탐색 키가 문자열일 경우 주의할 점. 가장 보편적인 방법은 아스키 코드 값을 모두 더하는 것 but 탐색 키들이 동일한 문자로 이루어져있지만 위치가 다른 경우 ex) are, ear 같은 경우 구분할 수 없다. 아스키 문자 코드가 65~122이기 때문에, 3자리인 경우 195~366으로 해시 주소가 집중될 수 있다. 이를 해결하기 위해 아스키 코드 x 문자의 위치를 사용한다. 문자열 s가 n개의 문자이고, i번째 문자의 값을 $u_i$라 할때 $u_0g^{n-1} +u_1g^{n-2} + ... + u_{n-2..

도전과제 15 : 입력 화면의 애니메이션 (Do it 안드로이드 앱 프로그래밍) [JAVA]
코딩/Do it Android [JAVA] 2020. 8. 18. 16:07

도전과제 15 고객 정보 입력 화면을 만들고 이 화면이 보이거나 사라질 때 애니메이션이 동작하도록 해보세요. 새로운 액티비티를 추가하고 고객 정보 입력이 가능하도록 만듭니다. 고객 정보 입력 화면에서는 이름과 나이, 전화번호를 입력받도록 만듭니다. MainActivity에서 [입력 화면으로] 버튼을 누르면 고객 정보 입력 화면이 보이도록 합니다. 이 과정에서 오른쪽에서 왼쪽으로 나타나는 애니메이션을 적용합니다. 고객 정보 입력 화면에서 [저장] 버튼을 누르면 MainActivity로 돌아오도록 합니다. 이 과정에서도 애니메이션을 적용합니다. 참고할 점 화면 전체에 애니메이션을 적용할 수 있습니다. 풀이 레이아웃은 간단하게 main화면과, 버튼을 누르면 나올 고객정보 입력 창을 만들었다. 애니메이션을 만들..

도전과제 14 : 쇼핑 상품 화면 구성하기(Do it 안드로이드 앱 프로그래밍) [JAVA]
코딩/Do it Android [JAVA] 2020. 8. 17. 02:11

도전과제 14 격자 형태로 쇼핑 상품을 보여주는 화면을 구성해 보세요. 격자 형태의 뷰에 보이는 각각의 아이템에는 상품의 이미지와 정보가 표시됩니다. 쇼핑 상품을 보여주는 화면을 리싸이클러뷰로 만듭니다.. 리싸이클러뷰의 칼럼은 두 개로 하고 아이템은 가상의 데이터를 사용해 여러 개 입력해둡니다. 각각의 아이템에는 상품 이미지, 상품 이름, 가격, 간단한 설명이 보일 수 있도록 합니다. 리싸이클러뷰의 한 아이템을 터치했을 때 선택된 상품의 이름과 가격을 토스트로 간단하게 보여줍니다. 참고할 점 상단 버튼은 위쪽과 좌, 우의 연결점을 부모 레이아웃과 연결합니다. 하단 버튼은 아래쪽과 좌, 우의 연결점을 부모 레이아웃과 연결합니다. 가운데 버튼의 위쪽 연결점은 상단 버튼의 아래쪽 연결점과 연결합니다. 가운데 ..

도전과제 13 : 리사이클러뷰에 고객 정보 추가하기 (Do it 안드로이드 앱 프로그래밍) [JAVA]
코딩/Do it Android [JAVA] 2020. 8. 17. 01:40

도전과제 13 사용자가 고객 정보를 간단하게 입력하고 버튼을 누르면 리싸이클러뷰에 추가되도록 해 보세요. 리싸이클러뷰에 하나의 아이템을 추가하는 기능입니다. 고객 정보를 입력할 수 있고 고객 정보 리스트가 표시되는 화면을 만듭니다. 화면의 위쪽에는 각각 이름, 생년월일, 전화번호를 입력할 수 있도록 입력상자 세 개를 만듭니다. 입력상자 아래에는 [추기] 버튼을 만들어서 버튼을 누르면 리싸이클러뷰에 아이템이 추가되도록 합니다. 화면 아래쪽에는 리싸이클러뷰를 표시합니다. 리싸이클러뷰에 들어가는 각각의 아이템은 고객 정보를 표시하며 아이콘, 이름, 생년월일, 전화번호가 표시되도록 합니다. 참고할 점 리싸이클러뷰에 새로 추가된 아이템을 보여주기 위해서는 리싸이클러뷰의 데이터를 관리하는 어댑터에 아이템을 추가해야..