본문 바로가기

분류 전체보기215

mail_programming - 1주차 : 연속되는 가장 큰 정수 매주 하나씩 프로그래밍 문제를 메일로 보내준다는 매일 프로그래밍... 동아리 사람들끼리 모여서 진행중이었는데 난 휴학생이라 이제서야 알게됨..ㅠㅠ 인생은 짧으니 파이썬도 익숙해질겸 하나씩 해보기로 했다! 연속된 정수들의 가장 큰 합을 출력하라는 것이 문제인데, 시간 복잡도 따위는 고려하지 않는 코딩으로 어찌어찌 했다.중학교 수학 시간에 배웠던 부분 집합을 만드는 방법에서 착안하여 요소가 하나인 부분 집합요소가 둘인 부분 집합요소가 셋인 부분 집합... 들을 만들어 그들의 합을 구하는 방식이다. 변수 parameter은 요소의 개수를 의미하고, idx는 인덱스, k는 연속되는 정수들을 세는 역할을 한다. 입력받은 sett 배열의 인덱스에 도착해 그 값을 sum 에 더하고, parameter의 개수만큼 연속.. 2018. 4. 8.
알고리즘 스터디 4회차 - Linked List로 Heap Sort구현 실패했다. ㅈㅈ... 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416.. 2018. 3. 25.
알고리즘 스터디 3회차 - 이진트리(Binary Tree) 구현 - 이진탐색트리 구현 구글링 하는데 90% + 옮겨 적는데 8% + 합치는데 2% 정도의 비율로 이진 트리를 구현하였다. 몇 군데의 블로그에 올려진 이진트리 소스들을 보고 짜맞춰서 순회 기능 + 추가 및 삭제 기능을 가진 이진 트리를 구현해보았다. 책은 어차피 라이브러리에 구현되어있는 이진 트리를 쓰고, 심지어 언어도 파이썬이라 개념만 정리하고 나머지는 구글링에 의존하여 소스를 짰다. 사실 짰다는 말보다는 짜맞췄다라는 말이 더 어울리지만 "이해했으면 된거지..." 라고 생각하며 정리해본다. 이진 트리 구현하랬는데 이진탐색트리를 해버렷네 ㅎ 이진탐색트리란? 효율적인 탐색 작업을 위해 만들어진 자료구조로 몇 가지 특징을 가지고 있다. 1. 모든 원소는 서로 다른 유일한 키를 가진다. 2. 왼쪽 서브트리의 원.. 2018. 3. 9.
알고리즘 스터디 2회차 - Stack & Queue 구현 저번 시간에 만들었던 연결 리스트를 이용해 Stack과 Queue를 만들어보았다. 끝에서만 항목(item)을 삭제하거나 저장하는 자료구조인 LIFO의 Stack, 양 끝에서 삽입과 삭제가 각각 수행되는 자료구조인 FIFO의 Queue를 몇 가지 특징과 함께 정리해보았다. 나중에 다시 볼 수 있게 나만의 언어로 작성하는 글이라 읽기 불편할 수 있지만... 1. StackStack의 주요 함수는 삽입을 담당하는 push와 삭제를 담당하는 pop이다.기본적으로 자료구조의 끝에서만 삽입과 삭제가 일어나기 때문에 구현하는데에는 그리 어렵지 않았다. push :: list와 KeyData를 입력받아 리스트의 끝에 연결해준다.pop :: 리스트의 끝에 있는 항목을 날려준다.print :: 리스트의 항목들을 보여준다... 2018. 2. 28.
알고리즘 스터디 1회차 - 연결리스트(Linked List) 구현 동아리에서 진행하는 알고리즘 스터디 1회차 과제는 연결 리스트(Linked List) 구현하기이다. 단방향 연결 리스트(Single Linked List), 복합 연결 리스트(Double Linked List), 원 연결 리스트(Circular Linked List)를 구현하는 것이었는데 시간 관계상 단방향과 복합 연결 리스트까지만 만들었다. 기능은 insert, delete, print 세 가지이고, 예외 처리를 거의 안해서 구멍이 송송 뚫려 있는 코드이니... 개념을 다졌다는데에만 의의를 두고 싶다. 아래는 코드 전문이다. 1. 단방향 연결 리스트 (Single Linked List) 12345678910111213141516171819202122232425262728293031323334353637.. 2018. 2. 23.
웹 페이지 파싱 on Android (Jsoup 이용) 전에 했던 Jsoup을 이용한 웹 페이지 파싱(http://usage.tistory.com/4)을 안드로이드 어플 위로 옮겼다. 콘솔창에 뜨던 데이터를 TextView에 뜨게 한게 달라진 점. 안드로이드의 까다로운 제한때문에 쓰레드 찾고 핸들러 찾다가 AsyncTask를 이용한 좋은 예제 강의가 있길래 참고하였다. (참고: http://blog.acronym.co.kr/535) 정상적으로 표시되는 것만 봐도 지금은 행복하다... * MainActivity.java 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727.. 2017. 12. 1.