분류 전체보기 491

자료구조 : 큐(Queue) 이해하고, 구현하기 in C++

Queue 1분만에 파악하기! 큐(Queue)은 선입선출 (First In First Out, FIFO) 자료구조이다. 먼저 넣은 자료가 가장 마지막에 나오는 스택(Stack)과는 반대이다. >> 스택에 대한 포스트를 참조 큐에 자료를 넣는 행동은 Put(또는 Enqueue), 꺼내는 행동은 Get(또는 Dequeue)이라고 하며 큐의 제일 앞에 있는 자료를 Front(또는 Head), 가장 뒤의 자료를 Rear(또는 Tail)라고 한다. 또한 큐가 꽉 차서 더 이상 큐에 자료를 넣을 수 없는 경우를 Overflow라고 하고, 큐가 비어있어 자료를 더이상 Get(Dequeue)할 수 없는 경우를 Underflow라고 한다. Queue, 어디에 쓸까? 'Queue'는 줄, 대기행렬이라는 뜻을 가지고 있다...

자료구조 : 스택(Stack) 이해하고, 구현하기! C++

Stack 1분만에 이해하기 스택(Stack)은 후입선출 (Last In First Out, LIFO) 자료구조이다.즉, 제일 늦게 들어온 데이터가 제일 빨리 나간다는 것이다.스택에 데이터를 넣는 행동은 Push(밀어 넣는다), 꺼내는 행동은 Pop이라고 부른다.그리고 스택의 가장 위 데이터를 가리키는 포인터를 top 이라고 하겠다. Stack은 어디에 사용되고 있을까?자료구조를 배우면서 나는 항상 "왜 이걸 만들까..."라는 생각이 제일 먼저 들었다.배울때 스택이 유용하고 널리 쓰인다는 걸 알 수 있다면 좋겠다고 생각해서 이 섹션을 덧붙였다! 워드 프로세서를 이용하다가 되돌리기 버튼을 누르면 이전에 했던 명령이 취소된다.이것은 워드 프로세서가 프로그램의 스택에 명령을 하나 하나 추가하다가,사용자가 되돌..

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

PHP 파일 공개PHP 파일은 어떻게 되어있는지 궁금해 하시는 분들이 많아코드를 첨부합니다. 저도 DB & PHP를 배우지를 않아서 인터넷 코드를 긁어서 만든거라 JSON 형태로 만든 아웃풋만 봐주시면 될 듯합니다!Android를 위한 JSON Parser는 구글링해서 쉽게 찾으실 수 있을 것입니다.물론 gson 같은 유명한 라이브러리도 있구요!

앱 배너광고 VS 네이티브 광고, 어느 것이 더 효율적인가?

요즘 앱들을 보니 거추장스런 배너광고는 조금 줄어들고 있는 추세인듯 했다.물론 내 앱처럼 1인 개발자의 조촐한(?) 앱들을 본건 아니지만, 네이티브 광고가 등장하면서 대놓고 "나 광고다!!" 하는게 없어졌다는 것이다. 애드몹에서 수 차례 자사의 페이지 단위 광고(전면광고)를 이용해서 수익을 올려보라고메일이 왔지만 단 한번도... 전면광고를 넣을 생각은 하지 않았다.이유는 아래와 같다. 1. 나는 전면광고에 대해 굉장히 불쾌하게 느낀다.앱 이용도중 뜬금없이 나타나 유저를 당황스럽게 한다.내 경우는 전면광고가 뜬금없이 뜨는 앱은 즉시 삭제한다...(너무 잔인할 수도 있겠지만ㅎ) 2. 내 앱에는 전면 광고를 넣을 곳이 없다.전면 광고는 예를들어 게임 앱에서 다음 스테이지로 넘어가거나, 스테이지를 클리어했거나 ..

나/이슈 2016.11.27

마인크래프트 앱 개발기 9편, 자료구조를 배우다!

이번 학기, 나는 자료구조라는 수업을 듣고 있다.자료구조와 알고리즘 정도는 알고 있어야 프로그래머라고 생각했기 때문에 가장 신경쓰며 듣는 중이다.단순 성적 따기가 아닌, 수업 내용 하나 하나를 흡수하는데 집중하고 있다는 말이다.자료구조 책 초반에 Big O 계산법이 나오는데, 저번에 알고리즘 독학하며 그냥 넘겼던 부분이 알고리즘의 시간복잡도를 따지는 데 중요하단 것을 깨달았다.그리고 중첩 for 문이 상당히 효율이 떨어지는 방법이라는 것도 말이다. 말로만 들었지, 시간복잡도를 따지니 자료가 많아질 수록 중첩 for문의 성능은 기하급수적으로 떨어졌다. 마인크래프트 앱에서 가장 많이 사용하는 기능이 아이템 리스트 펼치긴데, 나는 그 기능을 중첩 for 문으로 구현 해 놓았다.수업을 듣고 여러 실습들을 하면서..

Polynomial Operation in C++, 다항식 연산 덧셈/뺄셈/곱셈

자료구조 수업을 들으면서 과제로 다항식 연산을 C++코드로 구현하라는 것이 나왔다.C++ 자체가 처음이라 C++부터 공부를 했는데, 다행히도 내가 배운 C와 Java가 섞여있는 언어라배우는데 그다지 오래 걸리지는 않았다. 다항식 연산에서 termArray를 static으로 쓰는 것이 포인트고,매커니즘은 내가 그린 그림과 같다...(이렇게 그림 그려서 코드 작성하니 훨씬 쉬워지는 듯) 곱셈의 경우 추가적인 옵션 과제였는데,나는 한번 곱셈해서 나온 다항식을 계속해서 더하는 방식으로곱셈을 구현했다. 코드가 조금 길긴하지만 아래에 붙여넣도록 하겠다.(다항식 곱셈에 관해서 조금더 효율적이 있는 방법이 있으신 분은 댓글로 같이 공유해봐요!) 12345678910111213141516171819202122232425..

마인크래프트 앱 개발기 8편 <Markdown에 관하여>

새로운 기능, 패치 노트요즘 추가하고 있는 기능은 패치노트라고 하는 버전 히스토리를 보는 기능이다.마인크래프트 게임은 특이하게도 매번 업데이트를 할 때마다 유저들이 패치노트를 주의깊게 살펴보기에 필요성이 있겠다 싶어 넣었다. 저번에 앱에 추가한 서버 확인 기능은 잠시 안보이게 넣어두고이번 패치노트를 그 자리에 끼워 넣으려고 한다.서버 확인 기능을 접은 이유는 아래에 따로 적도록 하고, 패치노트 기능에 대해서 적어보겠다. 패치노트 기능은 저번에 블로그에서도 찬양했었던 FireBase를 이용해 구현했다.마인크래프트 패치는 자주되는 편이기 때문에 그때그때마다 실시간으로 업데이트 해주기 위해서 Firebase Storage에 마크다운으로 적은 패치노트를 업로드한 뒤 Firebase Realtime Databas..

안드로이드 아름다운 인트로 화면 만들기

안드로이드 앱 시작시 로고가 잠깐 떴다 사라지는 화면을 본 적 있을 것이다.인트로 화면에서는 최근 안드로이드 M에서 등장한 퍼미션을 받을 수도 있을 것이고, 로딩바도 구현할 수 있을 것이다.오늘은 그 인트로 화면을 구현해보도록 하겠다.먼저, 해당 layout을 준비한다. 그냥 linearLayout에 이미지 하나 올린 거라도 괜찮다.그 화면을 activity_intro.xml 라고 가정하자. 다음은 IntroActivity.java 를 생성한다.IntroActivity.javaimport android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.os.Handler; /** * Created by..

마인크래프트 앱 개발기 7편 "앱 레이아웃 정리!"

안드로이드 앱 성능에 관한 강의를 듣고, 마인크래프트 조합 가이드 앱을 최적화 시키기 시작했다.프로그래밍적인 부분 보다는 디자인적인 부분만 일단 살펴보고 레이아웃 정리에 들어갔다.깔끔하게 짠건 최근에 만든 부분이었고 옛날에 만든건 LinearLayout > LinearLayout > RelativeLayout > LinearLayout 이딴식(?)으로마구마구 뷰가 엉켜있었다. 메인화면 부터 말이다...디자인 타협이 살짝 들어간 부분도 있으나 수정 전 뷰를 그리는 시간이 25ms 였다면 수정 후 15ms 정도로 줄여 뿌듯하다!레이아웃 드로잉에 걸리는 시간 측정은 Hierarchy Viewer를 통해 할 수 있다.