일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- BuildConfig
- Parcelable
- 완전탐색
- 순수함수
- imeOptions
- Kotlin
- 최단경로
- SWEA
- 백준 14501
- hilt
- val
- 시뮬레이션
- 자바
- 2501
- EditText
- EditorInfo
- java
- 오르막수
- BFS
- Parcelize
- 프로그래머스
- 스카이라인 쉬운거
- Android
- 조합
- 순열
- 약수 구하기
- 백준
- 백준 퇴사
- 지능형 기차2
- dfs
- Today
- Total
목록분류 전체보기 (95)
안드 공부를 해볼까?
1. 문제분석 https://www.acmicpc.net/problem/2460 2460번: 지능형 기차 2 최근에 개발된 지능형 기차가 1번역(출발역)부터 10번역(종착역)까지 10개의 정차역이 있는 노선에서 운행되고 있다. 이 기차에는 타거나 내리는 사람 수를 자동으로 인식할 수 있는 장치가 있다. www.acmicpc.net 사실 문제분석이랄 것도 없는게 for문만 사용하면 풀 수 있다. 10개의 역에서 각각 내렸다가 탔다가 할 때 가장 많이 타고 있는 사람의 명수를 구하면 된다. 2. 구현 import java.io.BufferedReader import java.io.InputStreamReader import kotlin.math.max fun main(args: Array) { val br ..
1. 개요 알고리즘을 처음부터 해보자는 마음으로 kotlin을 시작하였습니다. 간단한 알고리즘인 최소, 최대에 대해 작성해보겠습니다. 2. 본문 최소, 최대는 정렬만 할 줄 안다면 해결할 수 있다. 또한 코틀린이나 자바에서 이미 최고 성능을 낼 수 있는 정렬이 있으니 그것을 이용했다. https://www.acmicpc.net/problem/10818 10818번: 최소, 최대 첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다. www.acmicpc.net 해당 문제를 기준으로 설명하겠습니다. import java.io.Buffere..
1. 개요 이번 포스팅에서는 이진수를 구하겠습니다. 사실 자바에서는 간단하게 구현할 수 있어 문제를 기준으로 보겠습니다. 2. 본문 항상 문제를 풀다보면 10진수 -> 2진수, 10진수 -> 16진수로 변환해서 푸는 문제가 존재했습니다. 2진수는 0과 1로 만든 숫자입니다. 각 자릿수는 2의 제곱으로 이루어져 있습니다.(2^0, 2^1, 2^2...) 8진수는 0부터 7까지로 만든 숫자입니다. 각 자릿수는 8의 제곱으로 이루어져있습니다.(8^0, 8^1, ...) 16진수는 0부터 15까지 한자리 숫자로 만든 숫자 입니다. 각 자릿수는 16의 제곱으로 이루어져있습니다.(16^0, 16^1 ...) 그렇다면 16이라는 10진수를 각 진수에 맞게 변환하면 어떻게 될까요? import java.io.Buffe..
1. 개요 프로젝트를 할때마다 편하게 쓰는 Hilt를 더 배우고 싶어 DI부터 다시 정리할려고 합니다. 본 포스트는 드로이드나이츠 2020, 옥수환 님의 Hilt 강의를 보며 작성하였습니다. 2. 본문 2-1. DI란 무엇일까? DI(Dependency Injection)은 의존성 주입을 뜻합니다. /** DI가 없는 코드 */ class MemoRepository{ private val db = SQLiteDatabase() fun load(id : String){...} } /** DI를 한 코드 */ class MemoRepository(private val db : SQLiteDatabase){ fun load(id : String) {...} } 2가지 코드 모두 db를 사용할 수 있습니다. 그..
1. 개요 약수 구하는 방법은 기본적으로 그 수와 나눠서 나머지가 없다면 그것은 약수가 됩니다. 하지만 우리는 더 새로운 방법을 찾아봅시다. 2. 본문 만약 우리가 약수를 구한다고 할 때 단순히 생각나는 것은 약수를 전부다 구하는 것 입니다. 하지만 21억의 약수를 구한다고 하면 21억번을 반복해야할까요? int num = Integer.parseInt(st.nextToken()); int pos = Integer.parseInt(st.nextToken()); ArrayList list = new ArrayList(); for(int i = 1; i i에 대응하는 수 -> 약수 (하지만 중복처리를 위해 num / i != i) 간단하게 12를 예로 들어보겠습니다. 12 = 1 2 3 4 6 12, 제곱근..
1. 문제분석 https://www.acmicpc.net/problem/1863 1863번: 스카이라인 쉬운거 첫째 줄에 n이 주어진다. (1 ≤ n ≤ 50,000) 다음 n개의 줄에는 왼쪽부터 스카이라인을 보아 갈 때 스카이라인의 고도가 바뀌는 지점의 좌표 x와 y가 주어진다. (1 ≤ x ≤ 1,000,000. 0 ≤ y ≤ 500,000) 첫 www.acmicpc.net 스카이라인은 태양이 질 때에 보이는 건물들의 윤곽이라고 한다. 이때 건물의 최소 개수를 구하는 문제다. 힌트를 보면 이해하기가 쉬워진다. 스카이라인의 고도가 높아졌다가 낮아질때 그 건물의 개수가 특정된다. 고도를 처음부터 보면 1 2 2 2 1 3 3 1 이다. 2 2 2에서 1로 낮아졌을 때 2 2 2는 한 건물로 특정지을 수 ..
1. 회고에 앞서... 작년 회고에 썻던 목표다. 어느정도 이루었을까? 1. 안드로이드 고급 기술 배우기 - Jetpack(Databinding, viewModel, Navigation...) - SAA - Clean Architecture - Hilt - Apollo 22년에 새로 배운 지식들을 나열해보았다. 현재는 코딩 컨벤션과 클린 아키텍처에 관심이 많다. 물론 앞으로도 더 배워야겠지만 매우 많은 지식을 배운 것 같다. 이를 도와준 프로젝트 선배님과 동아리 사람들에게 너무 감사하다는 말을 전하고 싶다. 2. 알고리즘 실력 기르기 이건 50% 정도 성공한 것 같다. 그 이유는 나중에 말하겠다.. DFS, BFS도 모르는 내가 이제는 풀 수 있게 되었다. 거기에 재귀의 방법도 다시 배워갔다. 현재는 실..
1. 문제 분석 https://www.acmicpc.net/problem/14719 14719번: 빗물 첫 번째 줄에는 2차원 세계의 세로 길이 H과 2차원 세계의 가로 길이 W가 주어진다. (1 ≤ H, W ≤ 500) 두 번째 줄에는 블록이 쌓인 높이를 의미하는 0이상 H이하의 정수가 2차원 세계의 맨 왼쪽 위치 www.acmicpc.net 가로와 세로가 주어지고 각 가로셀마다 높이가 주어진다. 그때 빗물이 몇개 고이는지 확인하는 문제다. 백준에 있는 힌트다. 여기서 가로 기준으로 잘 보면 규칙이 있다. 파란색으로 칠한 부분을 보면 된다. 검은색을 0, 하얀색을 1로 생각해보자. 첫째줄은 0 1 0 0이 된다. 빗물은 1칸 채워진다. 둘째줄은 0 1 1 0이 된다. 빗물은 2칸 채워진다. 셋째줄은 0..