본문 바로가기

[Java] 표현 가능한 이진트리(프로그래머스) 완전상세분석 문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/150367 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 본 문제는 입력값으로 주어진 10진수의 값이 주어진 조건에 의해 이진법 형태로 변경 후 이진트리의 형태로 구현될 수 있는가를 묻는 문제이다. 주어진 예시를 다시 한 번 살펴보면 다음과 같다. 예시 1) [7,42,5] 7은 이진법으로 111로 나타낼 수 있다. 이것을 완전이진트리로 나타내면 아래와 같이 간단하게 표현할 수 있다. 42는 이진법으로 101010 로 나타낼 ..
git proxy(socks4) 관련 error github에 프로젝트를 upload하기 위해 git을 사용해서 아래 명령어를 치는데, > git push origin master 계속해서 아래와 같은 두 문구의 에러가 발생한다...(동일한 현상에 의한 에러로 추측됨) fatal: unable to access 'https://github.com/sdh7700/movie_service_app/': SOCKS4: Failed receiving connect request ack: Failure when receiving data from the peer fatal: NotSupportedException encountered. ServicePointManager는 socks4 체계를 사용하는 프록시를 지원하지 않습니다. 이 에러문구에 대해 아무리 구글링..
RecyclerView에서 Drag&Drop을 이용해 View 위치 변경하기 1. View의 위치를 변경하기 위한 Library 안드로이드는 RecyclerView에서 각 View의 이동을 도와주기 위해 ItemTouchHelper Library를 지원하고 있다. 이 Library에 존재하는 ItemTouchHelper.Callback을 사용자가 구현하여 사용할 수 있다. 각각의 ViewHolder에 대해서 사용자가 특정 터치 동작을 일으킬 경우, ItemTouchHelper.Callback은 해당 상황에 맞는(설정된) 함수를 호출한다. 상세 문서는 아래 링크(안드로이드 개발문서)를 통해 확인할 수 있다. https://developer.android.com/reference/android/support/v7/widget/helper/ItemTouchHelper.Callback ..
펜윅 트리(1차원 펜윅 트리, Fenwick Tree, Binary Indexed Tree) ary[9] = {3, 5, 6, 2, 9, 10, 4, 7, 8} 위와 같은 1차원 배열이 있다. 해당 배열에서 ary[3]~ary[7] 구간합을 구하고자 한다. 가장 기본적인 코드는 아래와 같이 하나씩 모두 더하는 것이다. 해당 코드의 시간복잡도는 O(N) 이다.(연산의 수가 M일 경우 O(MN)) 펜윅트리를 사용하게 되면 이를 O(logN) 으로 감소시킬 수 있다. 그렇다면 펜윅트리가 무엇인지 알아보자. 1. 펜윅트리란 무엇인가? 펜윅트리는 Binary Indexed Tree, BIT 라고도 하며, 쉽게 말해 구간합을 빠르게 구하기 위한 자료구조이다. 2. 트리만들기(초기화) 입력받은 배열 ary[9] = {3, 5, 6, 2, 9, 10, 4, 7, 8} 를 이용해 펜윅트리를 만들어 보자. 펜윅트..
2차원 펜윅트리 이해하기(2-dimentional Fenwick Tree) 펜윅트리는 비트연산을 통해 빠른 시간에 구간합을 구하는 배열 형태의 트리이다. 이 글에서는 2차원 펜윅트리만을 설명하고 있다. 1차원 펜윅트리에 대한 이해가 필요하면 블로그 내 펜윅트리 글(https://uldada.tistory.com/5)을 참고하자. 2차원 펜윅트리 우선 2차원 펜윅트리의 Update와 Sum 함수를 보자. 코드를 보면 x축(여기에선 열을 의미)으로 펜윅트리가 동작하며, 그 안에 while문을 통해 y축(행을 의미)으로 펜윅트리가 동작한다. 일단 update를 통해 초기화(입력받은 배열을 통해 펜윅트리 채워나가기)를 진행해 보자 초기화는 update 함수를 통해 진행된다.(1차원 펜윅트리와 동일한 방식) 입력받은 배열은 아래와 같다. 1 2 3 4 5 6 7 8 9 10 11 12 ..
Android 개발이야기(1) LinearLayout | RelativeLayout | ConstraintLayout [기초] app:layout_constraintRight_toRightOf="parent" 의 의미 자신의 right의 constraint를 부여 하는데, parent의 right 이다. * constraint : 제한, 통제 [응용]