분류 전체보기 496

Selection Sort Algorithm (선택 정렬 알고리즘)

정렬(Sorting)은 리스트의 아이템을 오름차순 혹은 내림차순으로 정렬하는 것을 말한다.정렬은 사람, 컴퓨터 모두가 리스트에 있는 아이템을 빨리 찾을 수 있도록 도와준다. Swap정렬을 하기위해서는 swap(자리 바꾸기)을 할 줄 알아야 한다. 123456789101112131415161718192021222324252627namespace Rextester { class Program { public static void Main(string[] args) { int[] array = { 1, 2, 3, 4, 5 }; Console.WriteLine("Before swap()"); printArray(array); Console.WriteLine("After swap()"); swap(array, 0..

Binary Search Algorithm (이진 검색 알고리즘)

Binary Search는 순서대로 정렬된(sorted) 리스트에서 아이템을 찾는데 유용한 알고리즘이다.Binary Search는 아이템이 있는 범위까지 계속해서 반으로 나누면서 찾는다.1부터 10까지 수 중 아무거나 하나를 생각해서 맞추는 게임의 알고리즘과 동일하다. Binary Search의 의사 코드는 다음과 같다. 1. min은 범위 중 가장 낮은 것, max는 범위 중 가장 높은 것이다.min = 1, max = n2. min과 max의 평균값을 구해서 반내림을 한다. 이게 추정치다. (정수가 되도록)3. 만약 숫자를 맞췄다면, stop!4. 만약 추정치가 너무 낮다면 min을 그 추정치보다 높게 변경.5. 만약 추정치가 너무 높다면 max를 그 추..

Java 요일 구하기 계산 예제 / 소스 코드

1900년 1월 1일은 월요일이라는 점을 이용하여 요일 을 계산하는 프로그램이다. 아래 소스코드를 보면1) 연/월/일을 입력 받는 main()2) 구한 요일을 출력하는 PrintDay()3) 그 달은 총 몇일인지 계산하여 리턴하는 MonthDays()4) 그 날이 어떤 요일인지 계산하여 'X'요일을 리턴하는 DayofDate() 로 이루어져있다는 것을 알 수 있다. 계산 방법은 기준일자인 1900년 1월 1일로 부터 입력 받은 날짜까지 총 몇일 지났는지 알아낸다음,그 날짜를 7로 나눈 나머지에 따라 일/월/화/수/목/금/토 요일을 계산하는 것이다.일자 계산에는 1/3/5/7/8/10/12 월이라면 31일, 아니라면 30일, 평년 2월달이라면 28일, 윤년 2월달이라면 29일로 조건에 따라 날짜가 들어가도..

안드로이드 아름다운 카드뷰(Card View) 리스트 만들기 - (2)

레이아웃을 만들기가 끝났으니, 이제는 데이터를 모아 Adapter로 연결하는 일만 남았다.이 예제에서는 Fragment에서 RecyclerView를 불러올 것이기 때문에 Activity를 사용한다면 조금 수정할 부분이 있다.- onCreateView() -> onCreate()- getActivity() -> getApplicationContext() 또는 ~Activity.this 또는 this 그리고 이 예제에서는 공지사항을 불러오기 위한 카드뷰이므로웹 DB에서 만들어진 데이터를 php를 이용해 JSON 객체로 만들어불러오고, 안드로이드는 JSON을 읽어 ArrayList 형태로 데이터를 정리한다.그리고 그 데이터를 카드뷰 하나 하나에 뿌려준다.중간에 있는 DBhelper나 getData() 메소드는..

안드로이드 아름다운 카드뷰(Card View) 리스트 만들기 - (1)

오늘은 카드뷰(CardView)와 리사이클러뷰(RecyclerView)를 이용한아름다운 리스트 만들기에 대한 강의를 진행 해 보려고 한다.매 번 카드뷰를 만들 때마다 찾으려니 귀찮아서 한 번에 정리하는 것이다.특히나 이번 강의 자료는 상용화 할 앱에 실제 적용될 디자인이고 하니 디자인에 문외한인 개발자 분들에게 많은 도움이 될 것같다. build.gradle(Module :app) 파일 dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) testCompile 'junit:junit:4.12' compile 'com.android.support:appcompat-v7:23.0.1' compile 'com.android.support:cardv..

안드로이드 앱 최초 실행시 바탕화면에 아이콘(Shortcut) 생성하기

안드로이드 앱 최초 실행시 자동으로 바탕화면에 아이콘(shortcut)을 생성해주는 코드다.SharedPreferences의 "check"라는 키를 이용해해당 키의 value가 비어있으면(isEmpty()) shortcut을 생성하고,그 후에는 "exist"라는 value를 채워준다. SharedPreferences는 이렇듯 간단한 ON/OFF 설정에 이용하면 좋다.사용법도 SQLDatabase보다 간단하며앱이 삭제되지 않는 한 계속 지속되기 때문이다. if(pref.getString("check","").isEmpty()) 이하 코드를 다르게 해서앱 최초 실행시 취할 액션을 마음대로 꾸며보는 것도 좋다. 12345678910111213141516171819202122232425//데스크탑 아이콘 생성p..

UX, 사용자 경험에 관한 이야기 <사용자를 생각하게 하지마!(Don't make me Think!)>

나는 요즘 웹 디자인을 공부하고 있다.웹 디자인은 앱 디자인과는 조금 다른 점이 있다.웹은 한 페이지 당 보여주는 정보의 양이 앱에 비해 월등히 많고,웹 애플리케이션 하나 당 담고있는 페이지 수도 많다.때문에 많은 정보를 효율적으로 전달하기 위한 생각, 즉 '좋은 사용자 경험을 위해서는 어떻게 디자인 해야할까?'라는 식의 고민들이 생기기 시작했다.다행스럽게도, 이러한 고민들은 나보다 앞서 많은 디자이너,개발자,기획자가 해 주었고사용자 경험의 바이블이라 불리는 라는 책이 탄생하게 되었다. 우리 모두 웹을 책 첫 바닥을 읽듯이 정독하지 않기에저자 스티브 크룩은 '명료성'을 가장 중요하게 생각했다.불과 0.몇 초 사이에 그 페이지의 성격,기능을 알 수 있어야 하고불과 0.몇 초의 모호함,망설임 조차도 용서되지..

나/독후감 2016.03.03

와이파이 브레이커 개발기 1편

내 앱들 중에서 이상하게 다운로드 수가 높은 앱이있다.이름은 와이파이 비번 모음. 예전에 와이파이 비번 뚫기 일때는 구글 무료앱 유틸리티 TOP 100안에 들기도 했는데,이름이 과장되었다는 이유로 구글에서 예고 없이 짤렸다. (이 시스템은 정말 마음에 들지 않는다.)인터넷과 카카오스토리에서도 앱의 캡쳐장면이 떠돌고는 했다. 기능적으로는 정말 단순한 앱이다.ListView에 와이파이 SSID와 패스워드를 뿌려주는 식이다. 앱을 만들기전에, 키워드 조사를 정말 잘 해야겠다는 생각이 든다.자신의 앱을 검색하려는 사람들이, 혹은 필요한 사람들이 검색 할 때제일 먼저 뜨는 검색어, 뜰만한 검색어를 파악하고 그것을 앱 이름에 끼워 넣는게 엄청난 도움이 됬다.문제의 "와이파이 비번 뚫기"도 마찬가지다. 아무튼 나는 ..