일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 서비스 쓰레드 차이
- 2022 플러터 안드로이드 스튜디오
- jvm이란
- 스택 자바 코드
- 안드로이드 라이선스 종류
- 멤버변수
- 자바 다형성
- 안드로이드 os 구조
- 안드로이드 레트로핏 crud
- ANR이란
- ar vr 차이
- android ar 개발
- 안드로이드 레트로핏 사용법
- 플러터 설치 2022
- rxjava disposable
- android retrofit login
- 큐 자바 코드
- 안드로이드 유닛 테스트
- rxjava cold observable
- 안드로이드 유닛 테스트 예시
- 서비스 vs 쓰레드
- 스택 큐 차이
- rxjava hot observable
- 클래스
- Rxjava Observable
- 2022 플러터 설치
- 객체
- 안드로이드 유닛테스트란
- 안드로이드 라이선스
- jvm 작동 원리
- Today
- Total
목록알고리즘 문제 풀이 (243)
나만을 위한 블로그
풀지 못해서 다른 사람의 풀이를 참고했다. 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..
java.util.Stack 패키지에 포함된 스택을 써서 문제가 말하는 대로 코드를 작성하면 된다. import문을 써주는 걸 잊지 말자. import java.util.Stackclass Solution { fun solution(arr: IntArray): IntArray { val stk = Stack() for (element in arr) { if (stk.isNotEmpty() && stk.peek() == element) { stk.pop() } else { stk.push(element) } } return if (stk.i..
true면 해당 원소에 2를 곱한 만큼 배열에 추가하고, false면 그 원소만큼 배열에서 제거한다.forEachIndexed를 쓰면 간단하게 풀 수 있다. class Solution { fun solution(arr: IntArray, flag: BooleanArray): IntArray { val answer = arrayListOf() flag.forEachIndexed { i, b -> if (b) { repeat(arr[i] * 2) { answer.add(arr[i]) } } else { repeat(arr[i]..
아무 원소도 들어있지 않은 빈 배열 X가 있다. 양의 정수 배열 arr이 매개변수로 주어질 때, arr의 앞부터 차례대로 원소를 보면서 원소가 a면 X의 맨 뒤에 a를 a번 추가하는 걸 반복한 뒤의 배열 X를 리턴하는 함수를 작성하라 그냥 숫자만큼 arr의 원소들을 뻥튀기하라는 문제다. repeat()를 쓰면 간단하게 풀 수 있다. class Solution { fun solution(arr: IntArray): IntArray { val answer = arrayListOf() for (i in arr) { repeat(i) { answer.add(i) } } return answ..
myStr에서 a, b, c를 모두 제거해야 하기 때문에 정규식을 사용해서 푸는 법을 생각해볼 수 있다. class Solution { fun solution(myStr: String): Array { val result = myStr.split("[abc]".toRegex()).filter { it.isNotEmpty() } return if (result.isEmpty()) arrayOf("EMPTY") else result.toTypedArray() }} split()의 결과로 a, b, c를 기준으로 나눈 리스트가 리턴되고 filter를 써서 공백을 제거한다.공백 제거 후 남는 문자열들이 있는 경우와 아닌 경우 각각 다른 값을 리턴하게 하면 문제는 풀린다. 다른..
'm', 'rn'이 비슷하게 생긴 걸 이용해 문자열에 장난을 하려고 한다. 문자열 rny_string이 주어질 때 rny_string의 모든 'm'을 'rn'으로 바꾼 문자열을 리턴하는 함수를 작성하라 replace()를 써서 m을 rn으로 바꾸면 된다. class Solution { fun solution(rny_string: String): String = rny_string.replace("m", "rn")}
문자 "A", "B"로 이뤄진 문자열 myString, pat이 주어진다. myString의 "A"를 "B"로, "B"를 "A"로 바꾼 문자열의 연속하는 부분 문자열 중 pat이 있으면 1, 아니면 0을 리턴하는 함수를 완성하라 myString에 map 걸어서 글자를 바꾼 다음 공백 없는 문자열로 만들고, 이 문자열에 pat이 있냐 없냐에 따라 1 or 0을 리턴하게 하면 된다. class Solution { fun solution(myString: String, pat: String): Int { val str = myString.map { when (it) { 'A' -> 'B' 'B' -> 'A' ..
문자열 binomial이 매개변수로 주어진다. binomial은 "a op b" 형태의 이항식이고 a, b는 음이 아닌 정수, op는 + / - / * 중 하나다. 주어진 식을 계산한 정수를 리턴하는 함수를 작성하라 a, op, b 사이에 공백이 있으니 split()으로 공백을 제거한다. 이후 만들어진 리스트의 1번 인덱스에는 항상 수식 기호가 들어가 있으니 이 기호가 무엇이냐에 따라 적절하게 리스트 안의 값들을 가져와서 계산하면 된다. class Solution { fun solution(binomial: String): Int { val split = binomial.split(" ") return when (split[1]) { "+" -> spl..
문자열 myString이 주어진다. "x"를 기준으로 해당 문자열을 잘라내 배열을 만든 후, 사전순으로 정렬한 배열을 리턴하는 함수를 완성하라 x를 기준으로 문자열을 나눠야 하니까 split()을 쓰는 건 동일하다.이 때 빈 문자열이 생길 수 있으니 filter로 공백이 아닌 글자만 뽑아낸 다음, sorted()로 정렬하고 배열로 만들면 된다. class Solution { fun solution(myString: String): Array = myString.split("x") .filter { it != "" } .sorted() .toTypedArray()}
문자열 myString이 주어진다. myString을 문자 "x"를 기준으로 나눴을 때 나눠진 문자열 각각의 길이를 순서대로 저장한 배열을 리턴하는 함수를 완성하라 x를 기준으로 나눠야 하니 split()을 통해 나눈다. 이 때 split()은 나눠진 문자열들을 리스트에 담아 리턴하기 때문에 map으로 각 요소에 접근해 길이를 구한다.마지막으로 문제의 리턴타입인 IntArray에 맞게 배열로 바꿔주면 해결된다. class Solution { fun solution(myString: String): IntArray = myString.split("x").map { it.length }.toIntArray()}