본문 바로가기

전체 글279

[Kotlin, S2] 백준 18352번 특정 거리의 도시 찾기 특정 거리의 도시 찾기(18352번)Silver 2#그래프 이론 #그래프 탐색 #너비 우선 탐색 #최단 경로 #데이크스트라https://www.acmicpc.net/problem/18352 문제 내용  문제 접근도시의 개수, 도로의 개수, 구해야 하는 최단 거리와 시작 지점이 주어질 때, 시작 지점 도시에서 다른 도시로 이동하는 최단 거리가 입력받은 최단 거리와 같은 도시 번호만 출력한다. 조건에 맞는 도시가 없으면 -1을 출력. 도시는 모두 1~N까지가 있다. 도로의 길이는 모두 1일 때, 최단 경로 입력값을 K라고 할 때, 출발 도시에서 각 도시로 이동하는 최단 경로가 K와 같은 도시만 출력한다.bfs를 사용하면 된다. bfs를 쓰기 위해서는 어쨌든 그래프가 있어야 한다.4 4 2 11 21 32 3.. 2024. 9. 10.
[Android] 앱 서비스 출시를 위한 개인정보처리방침 및 이용약관 작성하기 부트캠프 최종 팀 프로젝트 기록 7  서론이번 포스팅은 크게 뭐는 없고 이제 MVP를 구현해서 version 1.0.0의 출시를 앞둔 상태이다.출시를 앞둔 상황이면 필연적으로 개인정보처리방침과 이용약관이 필요하게 되는데, 이를 빠르게 작성하는 사이트의 사용 방법에 대해 간단하게 알려주고자 한다.  개인정보처리방침 및 이용약관 등 문서 자동 생성 사이트, Law form개인정보처리방침 및 이용 약관 등 문서를 자동으로 생성하는 사이트로는 law form을 사용하였다.https://lawform.io/ 국내 유일 법률문서 자동작성 · 서명 · 통합 관리 플랫폼모바일에서도 쉽고 간편하게 법률문서 자동작성 및 원스톱 전자서명 가능! 실시간 온라인 공유/수정으로 업무 효율은 UP! 클라우드 기반의 안전한 보관/관.. 2024. 9. 9.
[Kotlin, G1] 백준 1300번 K번째 수 K번째 수(1300번)Gold 1#이분 탐색 #매개 변수 탐색https://www.acmicpc.net/problem/1300 문제 내용  문제 접근문제 자체는 이해하는 데 어렵지 않다.배열의 index는 1부터 시작한다. 각 배열에 들어 있는 수들은 각 index의 곱이다.그러므로 표로 나타내 보면 아래와 같다.위 표에는 5 * 5 크기의 2차원 배열에 들어갈 수들을 나열해 놨다.각 index의 곱으로 이루어져 있다.모든 값들은 각 줄에 해당하는 배수들로 이루어져 있는 것을 볼 수 있다.1번째 줄은 1의 배수, 2번째 줄은 2의 배수 ... 5번째 줄은 5의 배수로 이루어져 있다. 입력 예제에서는 3 * 3의 2차원 배열의 값들을 정렬했을 때, 7번째 값을 불러와야 한다.우선 배열 데이터를 정렬해 보면.. 2024. 9. 9.
[Android] 공부일지(2024-09-06) 오늘 공부한 내용 정리(2024년 9월 6일)  코드카타 문제풀이사과 담기 게임(2828번)https://rkdrkd-history.tistory.com/239 [Kotlin, S5] 백준 2828번 사과 담기 게임사과 담기 게임(2828번)Silver 5#구현 #그리디 알고리즘https://www.acmicpc.net/problem/2828 문제 내용  문제 접근사과를 담을 수 있는 바구니가 주어진다.바구니의 범위 안에 정확히 사과를 넣어야 할 때,rkdrkd-history.tistory.com  면접 이론 학습 19일 차면접 이론 학습 19일 차메모리가 고갈되면 일어나는 현상중요도가 낮은 프로세스들이 먼저 강제로 종료되는 현상이 발생한다.  RecyclerView를 사용할 때의 최적화 방법리스트의 데.. 2024. 9. 6.
[Kotlin, S5] 백준 2828번 사과 담기 게임 사과 담기 게임(2828번)Silver 5#구현 #그리디 알고리즘https://www.acmicpc.net/problem/2828 문제 내용  문제 접근사과를 담을 수 있는 바구니가 주어진다.바구니의 범위 안에 정확히 사과를 넣어야 할 때, 바구니를 움직이는 최소 횟수를 구해야 한다.바구니의 넓이가 1보다 클 수도 있다. 사과가 떨어지는 순서는 입력 순서대로 떨어진다.떨어지는 위치에 바구니를 옮겨 주면 된다. 입력 예제 1을 예로 들어 보겠다.5 131535칸으로 나뉘어 있는  화면에 길이가 1인 바구니가 있을 때, 사과가 1 -> 5 -> 3의 위치에서 떨어질 때, 오른쪽 또는 왼쪽으로 바구니를 움직여 사과를 모두 담을 수 있는 최솟값을 구해야 한다. 스크린에 따라서 가장 왼쪽을 1, 가장 오른쪽을 5.. 2024. 9. 6.
[Android] 공부일지(2024-09-05) 오늘 공부한 내용 정리(2024년 9월 5일)  면접 이론 학습 18일 차면접 이론 학습 18일 차캐시(Cache) 메모리를 사용하는 이유, CPU의 적중률을 높이기 위해 어떤 원리를 사용하는가?캐시 메모리는 컴퓨터 시스템의 성능을 향상시키기 위해 별도로 탑재된 캐시 전용 메모리이다.레지스터, 메인 메모리와 함께 메모리 계층 구조의 전통적인 핵심 계층 중 하나이다.프로그램에서 직접적으로 읽거나 쓸 수 없고 하드웨어의 메모리 관리 시스템이 내부적으로 제어한다. 캐시 메모리는 데이터 지역성의 원리를 이용한다.사용할 때를 대비해 미리 데이터를 준비해 놓는 방식이다.  Android의 Activity와 Fragment 간의 데이터 전달 방법Activity에서는 intent의 putExtra를 이용해 값을 다른 .. 2024. 9. 5.
[Android] runnable, handler를 이용해 현재 열려 있는 앱 감지 부트캠프 최종 팀 프로젝트 기록 6  서론이번에는 내가 맡은 기능의 마지막 기능인 허용 앱에 들어갔을 때, 다른 앱을 실행하게 되면 그걸 감지해서 overlay를 띄워주는 기능을 구현할 것이다.다른 앱을 실행하고 나면, 기존의 화면은 background 상태에서 계속 돌아간다는 점을 이용해서 별도의 Thread를 만들어서 현재 열려 있는 앱의 package name을 불러오는 작업을 진행할 것이다.  허용 앱을 실행했을 때, 다른 앱 실행 감지 기능 구현하기다른 앱 실행 감지를 위해서는 usageStatsManager를 이용해서 특정 기간 내의 앱 실행 기록을 구할 수 있다.실행 기록을 가져오는 함수를 만들고, 그 함수를 별도의 Thread에서 반복시켜서 실시간으로 현재 실행되어 있는 앱의 package.. 2024. 9. 5.
[Kotlin] 백준 10987번 모음의 개수 모음의 개수(10987번)Bronze 4#구현 #문자열 문제 내용  문제 접근문자열을 입력받으면 하나씩 보면서 단어가 모음인지 확인해 개수를 세면 된다.단어를 하나씩 보려면 for문을 사용해 주면 된다.  문제 해결 코드더보기import java.io.BufferedReaderimport java.io.InputStreamReaderfun main() = with(BufferedReader(InputStreamReader(System.`in`))) { val string = readLine() val vowels = listOf('a', 'e', 'i', 'o', 'u') var answer = 0 for (str in string) { if (vowels.contain.. 2024. 9. 4.
[Android] 공부일지(2024-09-03) 오늘 공부한 내용 정리(2024년 9월 3일)  코드카타 문제풀이수학은 체육과목입니다https://rkdrkd-history.tistory.com/233 [Kotlin, B3] 백준 15894번 수학은 체육과목입니다수학은 체육과목입니다(15894번)Bronze 3#수학 #사칙연산https://www.acmicpc.net/problem/15894 문제 내용  문제 접근도형의 한 변의 길이는 1이다.가장 윗부분의 정사각형은 3이다. 그리고 가장 아래의 정사rkdrkd-history.tistory.com   면접 이론 학습 16일 차면접 이론 학습 16일 차OS가 메모리 관리를 하는 이유와 메모리 관리를 위해 어떤 전략을 써야 하는가?메모리 관리가 필요한 이유는 멀티프로그래밍 환경으로 변화하면서 한정된 메모리.. 2024. 9. 3.
[Android] android에서 firestore의 데이터 업데이트 및 countdown timer 사용 부트캠프 최종 팀 프로젝트 기록 5  서론이번에 구현할 기능은 앱에서 다른 허용 앱을 실행했을 때, 사용 시간을 카운트다운 타이머로 측정 후, 우리 앱으로 복귀하면 남은 시간을 fireStore에 업데이트하는 기능을 만들어 보았다.  fireStore 데이터 업데이트fireStore 데이터를 불러오기 전에 먼저 카운트다운 타이머를 사용해서 앱의 사용 시간을 구해줄 것이다.먼저 허용 앱을 실행하게 되면, 허용 앱을 여는 동시에 타이머를 작동시켜서 사용 시간을 측정한다. 초기 시작 시간은 각 허용 앱에 설정된 시간(제한 시간)으로 지정한다.허용 앱을 사용하다가 우리 앱으로 돌아오게 되면, 타이머를 멈추고 타이머에 남은 시간을 fireStore에 업데이트한다.허용 앱을 쓰는데 제한 시간이 종료되었는데 우리 앱.. 2024. 9. 3.
[Kotlin, B3] 백준 15894번 수학은 체육과목입니다 수학은 체육과목입니다(15894번)Bronze 3#수학 #사칙연산https://www.acmicpc.net/problem/15894 문제 내용  문제 접근도형의 한 변의 길이는 1이다.가장 윗부분의 정사각형은 3이다. 그리고 가장 아래의 정사각형들의 둘레는 양 옆의 변의 길이 2와 바로 위층의 정사각형의 영역을 제외한 양 끝의 0.5씩 해서 1이다. 그리고 마지막 밑변의 길이를 합하면 된다.맨 아래의 정사각형이 3개가 있을 때는 2 + 1 + 3 = 6이 된다. 마지막 층을 제외하면 항상 둘레는 3이 된다는 규칙을 쉽게 찾을 수 있다.입력 예제를 보면 입력이 3으로 주어지는데, 이는 최하단의 정사각형이 3개가 있다는 뜻이다.1층의 정사각형은 양옆(2)과 맨 위(1)해서 둘레는 3이고, 2층은 양옆(2)과.. 2024. 9. 3.
[Android] 공부일지(2024-09-02) 오늘 공부한 내용 정리(2024년 9월 2일)  코드카타 문제풀이네 번째 점https://rkdrkd-history.tistory.com/231 [Kotlin, B3] 백준 3009번 네 번째 점네 번째 점(3009번)Bronze 3#구현 #기하학https://www.acmicpc.net/problem/3009 문제 내용  문제 접근3개의 점의 좌표가 주어질 때, 축에 평행한 직사각형을 만들기 위해 필요한 네 번째 점을 출력해야 한다.rkdrkd-history.tistory.com  면접 이론 학습 15일 차면접 이론 학습 15일 차전역 변수와 정적 변수의 차이전역 변수는 다른 외부 파일에서도 접근이 가능한 변수.정적 변수는 해당 파일에서만 접근이 가능한 변수이다. 초기화하지 않은 정적 변수의 경우 본문.. 2024. 9. 2.
[Kotlin, B3] 백준 3009번 네 번째 점 네 번째 점(3009번)Bronze 3#구현 #기하학https://www.acmicpc.net/problem/3009 문제 내용  문제 접근3개의 점의 좌표가 주어질 때, 축에 평행한 직사각형을 만들기 위해 필요한 네 번째 점을 출력해야 한다.다르게 말하면, 양 변이 평행한 직사각형을 만들기 위해 필요한 네 번째 점을 구해야 한다. 입력 예제들을 보다 보면 쉽게 규칙을 찾을 수 있다.입력 예제 1은 다음과 같다.5 55 77 5// 정답: 7 7 예제 입력 230 2010 1010 20// 정답: 30 10 위 2개의 입력 예제의 정답을 보면 세 좌표에서 1개씩 들어 있는 좌표값이 정답이 되는 것을 볼 수 있다.양 변이 평행한 정사각형을 만들기 위해서는 한 좌표에 x축과 평행한 좌표, y축으로 평행한 좌.. 2024. 9. 2.
[Android] clean architecture에 firebase 로직 적용하기 부트캠프 최종 팀 프로젝트 기록 4  서론팀원들과 UI 구성을 마무리 짓고 이제 본격적으로 기능 구현에 돌입했다.내가 맡은 기능은 디톡스 타이머가 작동 중일 때, 실행이 가능한 허용 앱들을 불러와서 정해진 시간만큼만 사용할 수 있도록 구현하는 것이다.정해진 시간만큼 사용하는 기능을 구현하기 전에, 실행이 가능한 앱들을 firestore에서 불러오는 작업을 먼저 진행하겠다.  fireStore 로직을 clean architecture로 구현하기clean architecture의 구조는 이 포스팅을 보는 사람들을 다 어느 정도는 알고 있다는 가정하에 간단하게 설명하겠다.clean architecture는 data, domain, presentation 계층으로 나뉘어 있고data에는 데이터를 저장할 data.. 2024. 8. 30.
[Kotlin, S3] 백준 8911번 거북이 거북이(8911번)Silver 3#구현 #시뮬레이션 문제 내용  문제 접근처음에 거북이가 좌표 0, 0에 있을 때, 이 거북이를 명령어로 움직여서 거북이가 지나간 영역의 사각형의 넓이를 구한다.이 경우에는 거북이가 움직이고 난 좌표 x, y를 모두 구해서 최댓값과 최솟값을 차를 이용해 각 변의 길이를 구하고, x의 거리와y의 거리를 곱해주면 쉽게 구할 수 있다. 우선 명령에 따른 각도 계산 및 이동 결과를 구해야 한다. 각도의 경우는 자신이 편하게 정의하면 된다. 내 경우에는 0, 90, 180, 270으로 구현했다.'L' -> { if (currentAngle == 0) currentAngle = 270 else currentAngle -= 90}'R' -> { if (currentAn.. 2024. 8. 30.
[Android] 공부일지(2024-08-29) 오늘 공부한 내용 정리(2024년 8월 29일)  알고리즘 문제풀이올바른 배열https://rkdrkd-history.tistory.com/227 [Kotlin, S4] 백준 1337번 올바른 배열올바른 배열(1337번)Silver 4#구현 #정렬 #투 포인터 문제 내용  문제 접근문제에서 올바른 배열은 리스트의 원소 5개가 연속적인 값을 가지는 리스트를 뜻한다.정렬되지 않은 리스트가 주어질 때,rkdrkd-history.tistory.com  개인 공부부트캠프 최종 팀 프로젝트공부 내용 간단 정리최종적으로 맡을 기능들을 정하고 개발을 시작했다.내 경우에는 타이머가 작동 중일 때, 실행할 수 있는 앱들을 불러와서 각각의 앱의 시간만큼 앱을 사용할 수 있게 해주는 기능을 맡았다.현재 타이머가 작동 중일 때.. 2024. 8. 29.
[Kotlin, S4] 백준 1337번 올바른 배열 올바른 배열(1337번)Silver 4#구현 #정렬 #투 포인터 문제 내용  문제 접근문제에서 올바른 배열은 리스트의 원소 5개가 연속적인 값을 가지는 리스트를 뜻한다.정렬되지 않은 리스트가 주어질 때, 리스트를 정렬하고 나서 올바른 배열을 만들기 위해서는 몇 개의 원소를 추가해야 하는지 최소 개수를 출력한다.입력 예제 1을 예로 들어 보면3567리스트 5, 6, 7이 원소로 존재하는데, 5, 6, 7은 이미 연속된 수이기 때문에 2개만 있으면 올바른 배열을 만들 수 있다.3, 4 또는 7, 8이 있으면 된다. 리스트의 원소 하나하나를 연속된 원소의 첫 원소라고 가정하고 올바른 배열을 만들기 위해 추가해야 할 원소의 개수는 최소 0개에서 최대 4개가 된다.이미 올바른 배열인 경우에는 0개일 것이고, 연속.. 2024. 8. 29.
[Android] 공부일지(2024-08-28) 오늘 공부한 내용 정리(2024년 8월 28일)  코드카타 문제풀이유니대전 퀴즈쇼https://rkdrkd-history.tistory.com/224 [Kotlin, B1] 백준 20632번 유니대전 퀴즈쇼유니대전 퀴즈쇼(20632번)Bronze 1#구현 #문자열https://www.acmicpc.net/problem/20362 문제 내용  문제 접근정답자의 채팅이 올라오고 그 이전에 정답자와 같은 채팅을 친 사람들이 몇 명인지 구해야 한다.rkdrkd-history.tistory.com  면접 이론 학습 12일 차면접 이론 학습 12일 차객체 지향에서 상속이란 무엇인가, 예를 들어서 설명하기.상속(Inheritance)은 부모(super) class의 기능을 재사용(reuse)하고 기능을 확장(expa.. 2024. 8. 28.
[Android] custom NumberPicker를 string array와 함께 사용하기 내일배움캠프 최종 프로젝트 기록 3  서론어제까지는 BottomSheet의 height를 설정하기 위해 삽질한 것을 포스팅했는데,오늘은 Bottom Sheet에 NumberPicker를 써서 구현한 것을 포스팅해보려 한다.추가적으로 NumberPicker에 string.xml에서 정의한 string array도 함께 사용했다.  NumberPicker 구현우선은 NumberPicker에 사용할 전용 Theme를 만들어 보겠다.NumberPicker에서는 Picker의 text의 색과 size 등등 몇 개의 설정이 불가하기 때문에, Theme로 구현해 줘야 한다.textColor와 size 설정은 1, 2번째 줄에서 이루어지고, colorControlNormal은 NumberPicker에서 선택된 항목과 .. 2024. 8. 28.
[Kotlin, B1] 백준 20632번 유니대전 퀴즈쇼 유니대전 퀴즈쇼(20632번)Bronze 1#구현 #문자열https://www.acmicpc.net/problem/20362 문제 내용  문제 접근정답자의 채팅이 올라오고 그 이전에 정답자와 같은 채팅을 친 사람들이 몇 명인지 구해야 한다.입력은 시간 순서대로 주어지고 정답자가 입력되고 나서 이전에 채팅을 친 사람들 중 정답자와 같은 채팅을 친 사람을 구해야 한다.그러면 입력을 받을 때 정답자가 입력되면 정답자가 몇 번째 채팅에서 입력되었는지, 정답은 무엇인지 확인을 해줘야 한다. 그리고 입력받은 채팅들과 사용자 이름을 모두 List로 2차원 List에 저장해 준다.2차원 List를 거꾸로 돌게 되면 반복의 마지막이 가장 먼저 입력된 값이 되고 가장 빨리 올라온 채팅이 되기 때문에 정답자 이전에 정답을 .. 2024. 8. 28.
[Android] 공부일지(2024-08-27) 오늘 공부한 내용 정리(2024년 8월 27일)  코드카타 문제풀이주유소(Silver 3, 13305번)https://rkdrkd-history.tistory.com/221 [Kotlin, S3] 백준 13305번 주유소주유소(13305번)Silver 3#그리디 알고리즘https://www.acmicpc.net/problem/13305 문제 내용  문제 접근이 사진에서 원 안의 수가 1L당 기름의 값이고 원 사이의 연결된 선이 도시 간 도로의 길이일 때, 적은rkdrkd-history.tistory.com  면접 이론 학습 11일 차면접 이론 학습 11일 차객체 지향이 무엇인지 설명하고 SOLID 원칙에 대해 설명하기.객체 지향 프로그래밍(Ojbect - Oriented Programming, OOP)은.. 2024. 8. 27.
728x90
반응형