본문 바로가기

전체 글

[자바 Do It! 알고리즘]Chapter04 스택과 큐(큐) (2) ​ 1. 링 버퍼는 '오래된 데이터를 버리는' 용도로 사용할 수 있습니다. ※ 요소의 개수가 10인 배열에서 최근에 입력한 10개의 데이터만 출력하기 ☞ 입력한 값을 a[cnt++ % N]에 저장합니다. 1) 1번째 값 입력하기 cnt 는 0 이고 10으로 나눈 나머지는 0입니다. 입력한 값은 a[0] 에 저장됩니다. 2) 2번째 값 입력하기 cnt 는 1이고 10으로 나눈 나머지는 1입니다. 입력한 값은 a[1]에 저장됩니다. (중략) 3) 11번째 값 입력하기 cnt 는 10이고 10으로 나눈 나머지는 0입니다. 입력한 수는 a[0]에 저장됩니다. 1번째 위치의 데이터를 11번째 데이터가 덮어씁니다. ☞ 출력할 때 조금 더 생각해 볼 내용이 있습니다. 입력한 값의 개수(cnt)가 10 이하면 다음을 .. 더보기
[자바 Do It! 알고리즘]Chapter04 스택과 큐(큐) [큐] 1. 스택과 마찬가지로 데이터를 일시적으로 쌓아 두기 위한 자료구조입니다. 2. 가장 먼저 넣은 데이터를 가장 먼저 꺼내는 선입선출(FIFO; First In First Out)인 점이 스택과 다릅니다. 3. 큐에 데이터를 넣는 작업을 인큐(enqueue) 라고 하고 데이터를 꺼내는 작업을 디큐(dequeue) 라고 하고 데이터를 꺼내는 쪽을 프런트(front) 데이터를 넣는 쪽을 리어(rear) 라고 합니다. 4. 큐를 배열로 디큐흐면 que[0]에 저장된 값을 꺼낸 다음 두 번째 이후의 요소를 모두 맨앞으로 옮겨야 합니다. 이 처리의 복잡도는 O(n)이며 데이터를 꺼낼 때마다 이런 처리를 하게 되면 효율이 떨어집니다. 그래서 링 버퍼로 만듭니다. ​ [링 버퍼(ring buffer)로 큐 만들.. 더보기
[독후감] 블록체인 펼쳐보기 (김석원) 안녕하세요 의창입니다. ​ 블록체인에 관해 더 알아보려고 블록체인 펼쳐보기(김석원)를 읽었습니다. ​ 그런데 저번에 읽었던 블록체인 관련 책과 내용이 비슷하더라구요. 저는 기술적인 면보다는 사회적인 파급력과 혁명성이 더 궁금했는데.. 그 와 관련된 책이 필요할 것 같습니다. 이 책은 다른 블록체인 관련 책을 읽으셨으면 안 읽으셔도 될 것 같습니다. 더보기
자바(JAVA)기반 안드로이드 웹&앱 개발 46일차 (웹 요청, Volley, JSON, 모바일 데이터베이스, 헬퍼 클래스, 데이터 조회) 친형 결혼식 도와준 후로 피로가 안풀려서.. 요즘 너무 피로하네요. 예시는 내일 빨간 날에 올리겠습니다 ㅎ-ㅎ.. ​ [웹으로 요청하기, HTTP로 웹서버에 접속하기] 1. 자바에서 HTTP 클라이언트를 만드는 가장 간단한 방법은 URL 객체를 만들고 이 객체의 openConnection() 메서드를 호출하여 HttpURLConnection 객체를 만드는 것입니다. 2. URL 객체에 들어 있는 문자열이 “http://"를 포함하면 HTTP 연결을 위한 객체를 만들게 되므로 openConnection() 메서드가 리턴하는 URLConnection 객체를 HttpURLConnection으로 형변환하여 사용할 수 있습니다. 3. HttpURLConnection 객체로 연결할 경우에는 GET 이나 POST 와.. 더보기
[자바 Do It! 알고리즘]Chapter04 스택과 큐(스택)(2) ☞ 검색 메서드 indexOf 스택 본체의 배열 stk에 x와 같은 값의 데잉터가 포함되어 있는지, 포함되어 있다면 배열의 어디에 들어있는지를 조사하는 메서드입니다. 검색은 꼭대기 쪽에서 바닥 쪽으로 선형 검색을 수행합니다.(먼저 팝이 되는 데이터를 찾기 위해서) 즉, 배열 인덱스가 큰 쪽에서 작은 쪽으로 스캔합니다. 검색에 성공하면 찾아낸 요소의 인덱스를 반환하고, 실패하면 -1을 반환합니다. ​ ☞ 스택의 모든 요소를 삭제하는 메서드 clear clear 메서드는 스택에 쌓여 있는 모든 데이터를 삭제하는 메서드입니다. ※ 스택에 대한 푸시와 팝 등 모든 작업은 스택 포인터를 바탕으로 이루어집니다. 따라서 스택의 배열 요솟갑승ㄹ 변경할 필요가 없습니다. 모든 요소의 삭제는 스택 포인터 ptr 값을 0으.. 더보기
[자바 Do It! 알고리즘]Chapter04 스택과 큐(스택) [스택] 1. 스택은 데이터를 일시적으로 저장하기 위한 자료구조로 , 가장 나중에 넣은 데이터를 가장 먼저 꺼냅니다. ( LIFO, Last In First Out, 후입선출) 2. 스택에 데이터를 넣는 작업을 푸시 (push) 라 하고, 스택에서 데이터를 꺼내는 작업을 팝 (pop) 이라 합니다. 3. 푸시와 팝을 하는 위치를 꼭대기 (top) 라 하고, 스택의 가장 아랫부분을 바닥 (bottom) 이라 합니다. 4. Java 프로그램에서 메서드를 호출하고 실행할 때 프로그램 내부에서는 스택을 사용합니다. ​ ​ ☞ 스택 본체용 배열 : stk 푸시된 데이터를 저장하는 스택 본체의 배열입니다. 인덱스 0인 요소가 스택의 바닥(bottom)입니다. 가장 먼저 푸시된 데이터를 저장하는 곳은 stk[0] 입.. 더보기
자바(JAVA)기반 안드로이드 웹&앱 개발 45일차 (스레드, AsyncTask, 서버, 소켓) 코딩에 있는 주석은 강사님이 다신 것을 적어온 것입니다. 마지막 예제는.. 빌드 중에 오류가 난것같아서 지우려고 했는데.. gradle을 지워버려서.. 돌아가지 않습니다.. ​ ​ [일정 시간 후에 실행하기] 1. 웹서버와 같은 원격 서버에 접속한 후 웹페이지를 요청할 때 응답이 늦어지거나 응답이 없으면 앱이 대기하고 있는 상황이 지속되는 문제가 생깁니다. 이런 경우에는 기본적으로 별도의 스레드를 만들어 처리하게 됩니다. 2. 핸들러로 지연 시간을 주었을 때 핸들러로 실행되는 코드는 메시지 큐를 통과하면서 순차적으로 실행되기 때문에 UI 객체들에 영향을 주지 않으면서 지연시간을 두고 실행됩니다. ※ 일정 시간 후에 실행하기 예시 ​ ☞ 핸들러는 메시지 큐를 사용하므로 메시지들을 순서대로 처리하지만 메시지.. 더보기
[자바 Do It! 알고리즘]Chapter03 검색 알고리즘(자연정렬X 배열검색) [자연 정렬로 정렬되지 않은 배열에서 검색하기] 1. 자연 정렬로 정렬되지 않은 배열에서의 검색은 제너릭 메서드(generic method)로 하면 됩니다. 2. 제너릭 메서드의 첫 번째 매개변수 a 는 검색 대상입니다. 3. 제너릭 메서드의 두 밴째 매개변수 key 는 키 값입니다. 즉, 매개변수로 전달하는 자료형은 Integer, String, 신체검사 데이터용 클래스 PhyscData 등 어떤 것을 전달해도 좋습니다. 4. 하지만 배열의 요소가 어떤 순서로 줄지어 있는지, 각 요소의 대소 관계를 어떻게 판단할 것인지에 대해서는 binarySearch 메서드에 알려주어야 합니다. 이 정보는 세 번째 매개변수 c에 전달합니다. 5. 세 번째 매개변수 c 에는 comparator를 전달합니다. compa.. 더보기