본문 바로가기

분류 전체보기556

Kotlin 예시 작성] 유클리드 호제법(Euclidean Algorithm) 유클리드 호제법은 최대공약수와 최소공배수를 구할 수 있는 알고리즘이다. 그니까.. 말은 이건데... a와 b의 최대공약수는 a와 b를 나눈 나머지 r 이 존재할 때, b와 r의 최대공약수와 같다.. 라는건데(???) 그래서 나머지가 0이 나오면, 그 시점의 b가 최대공약수가 된다는거다(?????) 예를 들어 742와 854의 최대 공약수를 구해보자. 일반적인 방식으로 구해보면... 약수집합 = [2], 371 427 -> 약수집합 = [2, 7], 53 61 최대공약수가 2*7 = 14 가 나오는 것을 알 수 있다. 유클리드 호제법은 다음과 같이 구한다. 854 = 742 * 1 + 112 742 = 112 * 6 + 70 112 = 70 * 1 + 42 70 = 42 * 1 + 28 42 = 28 * .. 2024. 3. 26.
Kotlin] 백준 11650번 풀이 https://www.acmicpc.net/problem/11650 11650번: 좌표 정렬하기 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. www.acmicpc.net 더보기 이 문제는 다중정렬 문제이다. x를 먼저 정렬하고, x값이 같다면 y를 정렬해야하는. 코틀린에는 다중정렬에 대한 매서드가 존재한다. list.sortWith(compareBy) list.sortedWith(compareBy) -ed의 차이는.. 거 다른 정렬함수랑 같이 sortWith는 기존 리스트를 정렬하고, sortedWith는 정렬.. 2024. 3. 14.
Kotlin] 백준 10989번 문제풀이 https://www.acmicpc.net/problem/10989 10989번: 수 정렬하기 3 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다. www.acmicpc.net 더보기 이 문제는.. 최대 천만개의 숫자를 정렬해야한다. 따라서 평범한 sorting방식을 사용할 수 없다. 왜냐면 sorting은 k개의 요소를 가진 배열의 n번째의 숫자를 1~k까지 훑어서 위치를 정하는 방식이기 때문에 결국 O^2 방식의 시간복잡도를 가진다. 따라서 배열의 갯수가 커질수록 기하급수적으로 커지고, 10^7개의 배열은 결국 10^14번 도는 것이기 때문에, 그리고 이것을 프린팅까지 해야하므로 조건으.. 2024. 3. 13.
Android] Pending Intent 푸시 서비스에서 액티비티를 열어야 할때 PendingIntent를 이용한다. PendingIntent는 해당 애플리케이션이 종류되더라도 Intent를 보류하며 권한을 위임받아 다른 프로세스에서 살아남아있는 인텐트이다. 따라서, 앱이 종료되더라도 푸시를 받아 액티비티를 열 때 실질적으로는 Intent가 열리는 것이 아닌 해당 Intent의 역할을 위임받은 PendingIntent가 오픈된다. 이 때, 액티비티가 열리며 푸시의 페이로드를 전달해야하는 상황에서 activity intent 에 해당 값을 실어 보낼 수 있는데, 이 때의 주의사항이 있다. 이것이 PendingIntent의 getActivity()의 class이다. PendingIntent.getActivity에 열고싶은 activity의 inte.. 2024. 3. 13.
반응형