일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 안드로이드 os 구조
- 자바 다형성
- 멤버변수
- rxjava cold observable
- android ar 개발
- 클래스
- 안드로이드 라이선스
- 스택 큐 차이
- ar vr 차이
- 객체
- 안드로이드 유닛 테스트 예시
- rxjava disposable
- rxjava hot observable
- android retrofit login
- 스택 자바 코드
- 안드로이드 레트로핏 crud
- 안드로이드 유닛테스트란
- jvm 작동 원리
- 서비스 쓰레드 차이
- ANR이란
- 2022 플러터 안드로이드 스튜디오
- Rxjava Observable
- 2022 플러터 설치
- 안드로이드 레트로핏 사용법
- 큐 자바 코드
- 안드로이드 유닛 테스트
- jvm이란
- 안드로이드 라이선스 종류
- 플러터 설치 2022
- 서비스 vs 쓰레드
- Today
- Total
목록알고리즘 문제 풀이/프로그래머스 (212)
나만을 위한 블로그
한 자리 정수로 이뤄진 문자열 num_str이 주어질 때, 각 자리수의 합을 리턴하는 함수를 완성하라 코틀린에서 String은 결국 여러 char들이 모인 CharSequence다.그렇다면 map을 써서 각 char들을 순회하며 숫자로 바꾼 다음 sum()으로 바뀐 숫자들의 총합을 구해서 리턴하면 끝난다. class Solution { fun solution(num_str: String): Int = num_str.map { it.toString().toInt() }.sum()}
실수 flo가 매개변수로 주어질 때, flo의 정수 부분을 리턴하는 함수를 완성하라 Double을 Int로 바꾸기만 하면 된다. class Solution { fun solution(flo: Double): Int = flo.toInt()}
rank, attendance의 길이는 서로 같고 몇 번 유저가 false면 버리고 true면 활용하는 문제니 Map이나 Pair를 써서 풀 수 있을 것 같다.그리고 등수가 높은 순서대로 3명을 골라서 곱하고 더하면 될 것 같다. class Solution { fun solution(rank: IntArray, attendance: BooleanArray): Int { val eligibleStudents = mutableListOf>() for (i in rank.indices) { if (attendance[i]) { eligibleStudents.add(rank[i] to i) } } ..
정수로 이뤄진 리스트 num_list가 주어진다. num_list에서 가장 작은 5개의 수를 제외한 수들을 오름차순으로 담은 리스트를 리턴하는 함수를 완성하라 뒤에서 5등까지 문제와 비슷하게 풀면 된다.drop()은 앞부터 매개변수로 넘긴 숫자만큼의 요소를 뺀 새 리스트를 만드는 함수다. class Solution { fun solution(numList: IntArray): IntArray = numList.sorted().drop(5).toIntArray()} 또는 subList()를 써서도 풀 수 있다. class Solution { fun solution(numList: IntArray): IntArray = numList.sorted().subList(5, ..
정수 리스트 num_list가 주어진다. num_list에서 가장 작은 5개의 수를 오름차순으로 담은 리스트를 리턴하는 함수를 완성하라 가장 작은 수 5개를 뽑아야 하고, 이 숫자들을 다시 오름차순으로 정렬해서 작은 숫자부터 표시되도록 하면 된다.그렇다면 처음부터 리스트 안의 요소들을 오름차순 정렬한 다음, 5개를 뽑아서 배열로 만들어 리턴시키는 방식으로 풀 수 있다. class Solution { fun solution(numList: IntArray): IntArray = numList.sorted().take(5).toIntArray()} 또는 slice를 사용해서도 풀 수 있다. class Solution { fun solution(num_list: IntArray): IntArray..
정수 배열 arr, 정수 n이 매개변수로 주어진다. arr의 길이가 홀수면 arr의 모든 짝수 인덱스 위치에 n을 더한 배열, 짝수면 arr의 모든 홀수 인덱스 위치에 n을 더한 배열을 리턴하는 함수를 완성하라 배열의 길이를 2로 나눈 나머지가 0인지 여부에 따라 홀짝을 구분한 뒤, 조건에 맞춰 특정 인덱스들의 값을 바꿔주기만 하면 된다. class Solution { fun solution(arr: IntArray, n: Int): IntArray { val length = arr.size val result = arr.copyOf() if (length % 2 == 1) { for (i in result.indices step 2) { ..
문자열 배열 strArr이 주어진다. strArr의 원소들을 길이가 같은 문자열끼리 그룹으로 묶었을 때, 가장 개수가 많은 그룹의 크기를 리턴하는 함수를 완성하라 별 조건 없이 길이가 같은 문자열들을 "그룹으로 묶고", "가장 개수가 많은 그룹의 크기"를 구해서 리턴하면 된다.이 조건은 groupBy, maxOf을 사용하면 간단하게 해결할 수 있다. class Solution { fun solution(strArr: Array): Int { return strArr.groupBy { it.length } .maxOf { it.value.size } }}
정의된 두 배열들의 관계와 예외사항을 그대로 코드로 작성하면 해결된다.모든 원소의 합은 sum()을 사용해서 구할 수 있다. class Solution { fun solution(arr1: IntArray, arr2: IntArray): Int { if (arr1.size != arr2.size) { return if (arr1.size > arr2.size) { 1 } else { -1 } } else { val arr1Sum = arr1.sum() val arr2Sum = arr2.sum() retur..
정수 배열 arr이 매개변수로 주어진다. arr의 길이가 2의 정수 거듭제곱이 되도록 arr 뒤에 정수 0을 추가하려고 한다. arr에 최소한의 개수로 0을 추가한 배열을 리턴하는 함수를 완성하라 arr의 길이가 2의 거듭제곱이 되도록 하는 덴 성공했지만 남은 자리에 0을 추가하는 방법을 알아내지 못했다.아래와 같이 풀면 된다. class Solution { fun solution(arr: IntArray): IntArray { val currentLength = arr.size var targetLength = 1 while (targetLength 왜 이게 되는가? 정답은 copyOf()의 작동 방식에 있었다. https://kotlinlang.org/a..
풀지 못해서 다른 사람의 풀이를 참고했다. class Solution { fun solution(arr: IntArray, k: Int) = arr.distinct().toMutableList().apply { if (size > k) return subList(0, k) else repeat(k - size) { add(-1) } }}class Solution { fun solution(arr: IntArray, k: Int): IntArray { val result = mutableListOf() val seen = mutableSetOf() for (num in arr) { if (num !in see..