일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 자바
- 코루틴 플로우
- 백준 2096
- 1806 백준
- 자료구조
- 1753 파이썬
- java
- 1003 파이썬
- Android Room
- flow buffering
- 1806 파이썬
- git local remote
- android hilt
- Jetpack Room
- 안드로이드 hilt
- 2096 파이썬
- 백준 5582
- 5582 DP
- 백준 10819
- Coroutine Flow
- 이진 탐색
- 5582 파이썬
- 백준 1644
- 1753 다익스트라
- 투포인터 알고리즘
- 10819 파이썬
- 6588 파이썬
- 1806 투포인터
- 1644 파이썬
- Android mvp
- Today
- Total
목록전체 글 (101)
Gemstone's Devlog
https://www.youtube.com/watch?v=1TsQ0buZUas GDG Android I/O Extended Korea Android 2022 온라인 세션에 참가하고 난 후기이다. 마지막 What's new in jetpack 세션의 네이버 웹툰의 안성용 개발자님이 설명하신 부분이 인상깊었다. Navigation 라이브러리는 완전히 코틀린으로 변경되었다고 한다. 똑같은 api를 제공하는데 왜 코틀린으로 변환을 할까? 코드랩이 진행된다고 함. dagger hilt를 적용하려면 조금 더 기다려야함. View에 대해서만 제공하고 있고 아직 compose에는 제공안함. 참고! 경우에 따라서는 디텍트가 되지 않도록
왜 쓰레드를 안쓰고 코루틴을 사용할까? 쓰레드는 resource intesive하다. 그러나 코루틴은 lightweight 쓰레드이다. (쓰레드 풀에서 동작) async 코드를 단순화하고, 콜백과 동기화가 되게 간편하다. 또한 문법도 단순하다. (simple syntax) 또 언제든 멈추고 재개할 수 있다. # 코루틴 - basic concepts Scope - create and run coroutines, provides lifecycle events Context - the Scope provides a context in which the coroutine runs (state of coroutine) Suspending functions - functions that can be run in a..
https://www.acmicpc.net/problem/2096 2096번: 내려가기 첫째 줄에 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 숫자가 세 개씩 주어진다. 숫자는 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 중의 하나가 된다. www.acmicpc.net 이 문제를 풀기 위해서는 다이나믹 프로그래밍과 더불어서 슬라이딩 윈도우라는 알고리즘을 알아야한다. 왜냐하면 얼핏 보면 전형적인 DP 문제라고만 생각할 수 있겠지만 메모리 제한이 4MB이다! 따라서 슬라이딩 윈도우 기법으로 메모리 사용량을 극한으로 낮추어야 한다. DP에서 말하는 슬라이딩 윈도우 기법이란, 메모제이션을 할 때 더 이상 사용하지 않는 값을 저장하지 않고 배열을 계속해서 갱신해주는 것을 의미한다. 앞..
https://www.acmicpc.net/problem/12865 12865번: 평범한 배낭 첫 줄에 물품의 수 N(1 ≤ N ≤ 100)과 준서가 버틸 수 있는 무게 K(1 ≤ K ≤ 100,000)가 주어진다. 두 번째 줄부터 N개의 줄에 거쳐 각 물건의 무게 W(1 ≤ W ≤ 100,000)와 해당 물건의 가치 V(0 ≤ V ≤ 1,000) www.acmicpc.net 이 문제를 처음 풀었을 때 냅색(Knapsack) 알고리즘에 대해서 몰랐었기 때문에 일반적인 dp로 해결하려고 했었다. https://velog.io/@uoayop/%EB%83%85%EC%83%89-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98 냅색 알고리즘 골라골라 velog.io 이 분이 잘 설명해둔 것 같아..
https://www.acmicpc.net/problem/17144 17144번: 미세먼지 안녕! 미세먼지를 제거하기 위해 구사과는 공기청정기를 설치하려고 한다. 공기청정기의 성능을 테스트하기 위해 구사과는 집을 크기가 R×C인 격자판으로 나타냈고, 1×1 크기의 칸으로 나눴다. 구사 www.acmicpc.net 교양시간에 수업은 안듣고 solved.ac Class4 문제들을 뒤적거리다가 재밌어 보여서 풀어봤던 문제였다. 구현 문제이기도 했고 문제가 복잡한 것 같아 효율성 따지지 않고 무지성으로 풀었는데, 역시 python3로 제출하니 시간초과가 났고, pypy3로 제출하니 겨우 통과하였다. 무지성 파이썬 코드 import sys input = sys.stdin.readline r, c, t = map(..
https://www.acmicpc.net/problem/1753 1753번: 최단경로 첫째 줄에 정점의 개수 V와 간선의 개수 E가 주어진다. (1 ≤ V ≤ 20,000, 1 ≤ E ≤ 300,000) 모든 정점에는 1부터 V까지 번호가 매겨져 있다고 가정한다. 둘째 줄에는 시작 정점의 번호 K(1 ≤ K ≤ V)가 www.acmicpc.net 이 문제는 다익스트라 최단 경로 알고리즘의 가장 기본적인 문제이다. 코드는 이것이 코딩 테스트다 책의 챕터 9를 참고하여 작성하였고 통과하였다. 파이썬 코드 import sys input = sys.stdin.readline sys.setrecursionlimit(10**6) import heapq # 정점의 개수 n, 간선의 개수 m n, m = map(in..
https://www.acmicpc.net/problem/1644 1644번: 소수의 연속합 첫째 줄에 자연수 N이 주어진다. (1 ≤ N ≤ 4,000,000) www.acmicpc.net 이 문제는 에라토스테네스의 체 + 투 포인터 문제이다! 전에 풀었던 문제들의 알고리즘 두 개를 섞어 놓은 문제라 신기했다. 급하게 풀어서 코드가 깔끔하지는 않지만 통과하였기 때문에 일단 코드를 올려보겠다. 파이썬 풀이 import math n = int(input()) arr = [False, False] + [True for i in range(n-1)] for i in range(2, int(math.sqrt(n)+1)): if arr[i]: for k in range(i + i, n+1, i): arr[k] =..
https://www.acmicpc.net/problem/10819 10819번: 차이를 최대로 첫째 줄에 N (3 ≤ N ≤ 8)이 주어진다. 둘째 줄에는 배열 A에 들어있는 정수가 주어진다. 배열에 들어있는 정수는 -100보다 크거나 같고, 100보다 작거나 같다. www.acmicpc.net 이 문제는 브루트포스 알고리즘으로 접근해야 하는 문제이다. 파이썬 모듈 안에 내장되어있는 조합 라이브러리를 사용했다. 파이썬 풀이 from itertools import permutations import sys # 주어진 값 입력 n = int(sys.stdin.readline()) a = list(map(int, sys.stdin.readline().split())) # permutation 저장(per: ..
의존성 주입 (Dependency Injection) 의존성 주입이란? 생성자 또는 메서드 등을 통해 외부로부터 생성된 객체를 전달받는 것 의존성 주입의 특징 - 클래스간 결합도를 느슨하게 함 - 인터페이스 기반으로 설계되며, 코드를 유연하게 한다. - Stub 또는 Mock 객체를 사용하여 단위테스트를 하기가 더욱 쉬워진다. 안드로이드에서 의존성 주입이 어려운 이유? - Android 클래스가 Framework에 의해 인스턴스화 됨 - Factory를 API28부터 제공, 하지만 현실적이지 않음 Dagger2 Dagger2는 자바와 안드로이드를 위한 강력하고 빠른 의존성 주입 프레임워크 Dagger2의 특징 - 컴파일 타임에 그래프를 구성 - 생성된 코드는 명확하고 디버깅이 가능함 - 리플렉션 사용 X..
https://www.acmicpc.net/problem/6588 6588번: 골드바흐의 추측 각 테스트 케이스에 대해서, n = a + b 형태로 출력한다. 이때, a와 b는 홀수 소수이다. 숫자와 연산자는 공백 하나로 구분되어져 있다. 만약, n을 만들 수 있는 방법이 여러 가지라면, b-a가 가장 큰 www.acmicpc.net 이 문제는 먼저 에라토스테네스의 체를 이용하여 범위 내의 숫자 중 소수를 먼저 판별해야 한다. 그러면 에라토스테네스의 체를 파이썬 코드로 구현하는 방법부터 꼭 암기해두자! https://wikidocs.net/21638 2. 소수 구하기 - 에라토스테네스의 체 # 소수 : 1과 그 수 자신 이외의 자연수로는 나눌 수 없는 자연수이다. # 코딩 소수인지 검사하는 함수(isPr..