전체 글 52

[백준/Python] 1463_1로 만들기 (Dynamic Programming)

[문제 링크] 1463번: 1로 만들기 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. www.acmicpc.net 사용자에게 입력받은 수를 다음과 같은 조건으로 1로 만드는 최소 경우의 수를 찾으면 된다. 1을 뺀다 2로 나누어진다면 2로 나눈다. 3으로 나누어진다면 3으로 나눈다. 10을 예시로 들면 10 -> 9 -> 3 -> 1로 총 3번이면 1로 만들 수 있다. 이 문제는 다이내믹 프로그래밍(DP)으로 풀 수 있다. 다이내믹 프로그래밍이란 큰 문제를 작은 문제로 단순화시켜 해결하는 알고리즘이다. 10에서 1을 뺐을 경우 9가 된다. 여기서 우리가 만약 9가 1이 되는 최소 횟수를 알고 있다면?? (9가 1이 되는 최소 횟수) + 1 (10에서 1을 빼 9로 갈 때 횟..

[Android/Kotlin] CoordinatorLayout 사용하기 (1) - 기초

최근 material 디자인에 관심을 가지고 이것저것 찾아보던 중..... Coordinatorlayout의 존재를 알게 되었고, 좀 더 생동감 있는 어플을 만들고 싶어서 이것저것 만져보게 되었다. 구글에서도 material을 지원해주고 있기 때문에 손쉽게 Coordinatorlayout을 사용할 수 있게 되었고, 기본 액티비티 템플릿으로 지원해주고 있다. 이번 포스팅에서 Coordinatorlayout이 뭔지 알아보고, 다양한 기능들을 알아보는 시간을 가지도록 하겠다. CoordinatorLayout이란? CoordinatorLayout은 FrameLayout에 기반을 둔 Layout으로 2개의 주요 기능이 있다. 최상위 Decor 뷰로서의 사용 자식 뷰들간의 인터렉션을 위한 컨테이너로서의 사용 보통 ..

안드로이드 2020.06.09

2020 Naver HACK DAY 후기 (네이버 핵데이)

여느 때처럼 인터넷을 탐방하던 중 하나의 글을 봤다. 바로 네이버에서 주최하는 1박2일의 해커톤인 네이버 핵데이 모집 공고였다. 동아리 활동을 하면서 처음 해커톤을 경험해 보았는데, 그것이 나에게 있어 기술적인 레벨업을 크게 주었다 생각하기 때문에 모집 공고를 보자마자 망설임 없이 참가 신청서를 냈다. 서류를 작성하고 원하는 주제를 선정한 후 코딩 테스트를 봤다. 코딩 테스트를 보면서 느꼈던 점은 '역시 난이도가 어느 정도 있구나'였다. 네임벨류가 있는 회사여서 그런지 코딩 테스트의 대한 난이도도 꽤 되는구나라고 느꼈다. ( 물론 신입모집에서 보는 코딩테스트의 난이도 보다는 쉬웠다. ) 총 3문제를 풀었던 기억이 나는데, 마지막 3번째 문제에서 시간초과를 해결하지 못하고 냈던 기억이 있다. 그래서 참가하..

잡담 후기글 2020.05.26

[Android/짤팁] 작업 중인 액티비티만 실행하고 싶을 경우

프로젝트 규모가 어느 정도 되면 여러 개의 화면을 구성하게 된다. 여러 개의 화면을 구성한다는 뜻은 결국 여러 개의 액티비티를 만든다는 것이 된다. 사용자가 로그인을 한 후 이용할 수 있는 앱을 만들어보는 프로젝트를 진행한다고 생각해 보자. 우리는 먼저 로그인 페이지를 만들고 로그인 페이지에서 사용자가 아이디와 비밀번호를 입력하면 메인 페이지로 이동하는 방식으로 뷰를 짜고 개발할 것이다. 이것이 잘 작동하는지 알아보기 위해 각자의 스마트폰 또는 에뮬레이터를 이용해 실행을 시켜 확인하게 되는데, 로그인 페이지부터 시작해서 아이디와 비밀번호가 잘 입력되는지 확인하고, 메인 페이지로 잘 이동하는지를 검사할 것이다. 이 프로젝트가 조금 더 커져서 다양한 화면을 제공해 줘야 하고 그에 따른 페이지가 늘어난다고 했..

안드로이드 2020.05.07

[백준/Python(파이썬)] 2667_단지번호붙이기

[백준] 2667. 단지 번호 붙이기 문제 링크 2667번: 단지번호붙이기 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집들의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여기서 연결되었다는 것은 어떤 집이 좌우, 혹은 아래위로 다른 집이 있는 경우를 말한다. 대각선상에 집이 있는 경우는 연결된 것이 아니다. 는 을 단지별로 번호를 붙인 것이다. 지도를 입력하여 단지수를 출력하고, 각 단지에 속하는 집의 수 www.acmicpc.net 문제 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집들의 모임인 단지를 정의하고, 단지에 번호를 붙..

[Android/Kotlin] 카메라로 사진 찍고 이미지뷰에 넣기 (2)

진짜 오랜만에 글을 포스팅하는 것 같다. 최근 토익 공부하느라 블로그에 신경을 많이 못 썼는데, 열심히 포스팅하다가 시간이 흘러 다시 포스팅을 하고 있으니 블로그 초창기 글을 쓸 때랑 기분이 비슷하다. ㅎㅎㅎ 지난번에 안드로이드 기본 카메라를 이용하여 사진을 찍고 그 사진을 이미지 뷰에 넣는 작업을 했다. 그러나 내가 찍었던 사진이 원치 않는 회전된 상태로 들어가 버렸다. (90도로 돌아간 상태로 화면에 나온다던지...) 오늘은 찍은 사진이 회전되지 않으면서 원래의 모양 그대로 들어가는 법을 알아보겠다. 이전에 실습했던 코드를 수정 및 추가하는 포스팅이기에 이전 글을 보지 못했던 분들이라면 아래 링크를 통해 확인하길 바란다. [Android/Kotlin] 카메라로 사진 찍고 이미지뷰에 넣기 잠시 이전 코..

안드로이드 2020.04.22

[Kotlin]ARCore를 이용한 AR구현(2) - 실제 구현

저번 포스팅에서 ARCore의 Scenefrom 라이브러리를 사용하기 위한 세팅을 하는 법을 알아보았다. 이번 포스팅에서는 실제로 AR을 구현해보는 시간을 가져 볼 예정이다. 카메라 내에 원하는 지점에 터치를 하게 되면 그에 맞춰서 3D 오브젝트가 생성되는 실습이다. 대부분 라이브러리가 지원해주기 때문에 크게 어려움 없이 쉽게 구현할 수 있다. 레이아웃 설정 먼저 메인 레이아웃을 다음과 같이 설정해 준다. activity_main.xml 카메라가 비춰질 화면은 프래그먼트이며 이번 실습해서는 해당 프래그먼트가 화면 전체를 차지하도록 만들었다. 3D 오브젝트 설정 사용자가 원하는 지점을 터치하게 되면 오브젝트가 생성되는데, 이 오브젝트를 만들어줘야 한다. 우리는 그럴 정도의 능력은 없으니 인터넷에 있는 3D..

안드로이드 2020.04.02

[Kotlin] ARCore를 이용한 AR 구현 (1) - 세팅

옛날부터 AR에 대한 흥미는 어느정도 있었지만 어떻게 만들어야할지 몰라 막막했을 때가 있었다. 그 때 당시 실력도 그렇게 좋지 못했고, 기초적인 부분에 대해서도 많이 부족했기 때문에 미뤄뒀다가 최근에 AR을 살짝 다루어 보았다. 구글에서 ARCore라는 아주 편리한 기능을 제공해주기 때문에 ARCore의 Sceneform을 이용해 볼 예정이다. ARCore란? ARCore는 구글에서 증강 현실 어플리케이션을 빌드할 수 있도록 만든 소프트웨어 개발 키트다. 그 중 Scenceform이라는 라이브러리가 존재하는데 이것을 이용하면 굉장히 쉽게 AR을 구현할 수 있게 된다. 자세한 내용은 링크를 참조하길 바란다. ARCore. https://developers.google.com/ar ARCore - Googl..

안드로이드 2020.04.01

[백준/Python(파이썬)] 14891_톱니바퀴

문제가 너무 길고 그림이 많은 관계로 링크로 대체합니다. https://www.acmicpc.net/problem/14891 14891번: 톱니바퀴 첫째 줄에 1번 톱니바퀴의 상태, 둘째 줄에 2번 톱니바퀴의 상태, 셋째 줄에 3번 톱니바퀴의 상태, 넷째 줄에 4번 톱니바퀴의 상태가 주어진다. 상태는 8개의 정수로 이루어져 있고, 12시방향부터 시계방향 순서대로 주어진다. N극은 0, S극은 1로 나타나있다. 다섯째 줄에는 회전 횟수 K(1 ≤ K ≤ 100)가 주어진다. 다음 K개 줄에는 회전시킨 방법이 순서대로 주어진다. 각 방법은 두 개의 정수로 이루어져 있고, 첫 번째 정수는 회전시킨 톱니바퀴 www.acmicpc.net 총 4개의 톱니바퀴가 존재하고, 각각의 톱니바퀴 칸마다 N극(0)과 S극(1..

[Programmers/Python(파이썬)] Level_2 주식가격

문제 설명 초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return 하도록 solution 함수를 완성하세요. 제한사항 - prices의 각 가격은 1 이상 10,000 이하인 자연수입니다. - prices의 길이는 2 이상 100,000 이하입니다. 입출력 예 prices return [1,2,3,2,3] [4,3,1,1,0] 각 시간대별 주식가격이 떨어지지 않은 기간이 몇 초인지를 구하는 문제다. 간단한 스택/큐 문제로 큐를 이용하면 쉽게 문제를 풀 수 있다. prices 리스트를 큐로 바꿔 pop해주고, 큐 리스트에 남아있는 요소들과 하나씩 비교 한다. 이 때 가격이 떨어지지 않은 기간을 answer 리스트에 넣어줘야 하기 때..