일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 안드로이드 유닛테스트란
- ANR이란
- Rxjava Observable
- 서비스 쓰레드 차이
- 2022 플러터 설치
- 멤버변수
- 자바 다형성
- 큐 자바 코드
- 안드로이드 os 구조
- 안드로이드 라이선스 종류
- 스택 자바 코드
- 안드로이드 레트로핏 crud
- rxjava disposable
- ar vr 차이
- 2022 플러터 안드로이드 스튜디오
- android retrofit login
- 서비스 vs 쓰레드
- 안드로이드 유닛 테스트 예시
- rxjava hot observable
- 안드로이드 레트로핏 사용법
- android ar 개발
- jvm이란
- 안드로이드 유닛 테스트
- 객체
- 클래스
- 스택 큐 차이
- 플러터 설치 2022
- rxjava cold observable
- jvm 작동 원리
- 안드로이드 라이선스
- Today
- Total
목록2024/06 (33)
나만을 위한 블로그

1000번 문제를 풀었다면 이 문제도 풀 수 있다.숫자 2개를 입력받고 비교해서 조건에 맞는 기호를 출력하면 된다. fun main() { val (A, B) = readln().split(" ").map { it.toInt() } when { A println(" B -> println(">") A == B -> println("==") }} "=="를 출력하는 조건은 else로 바꿔도 된다. fun main() { val (A, B) = readln().split(" ").map { it.toInt() } when { A println(" B -> println(">") else -> println("==") }}

앞뒤에 공백이 있을 수 있으니 trim()으로 전체 문자열 양 옆의 공백을 제거하고, split()으로 나눈다.그러나 split() 후 결과를 그대로 출력하는 코드를 제출하면 84% 이후에서 틀렸다고 표시된다. fun main() { val a = readln().trim().split(" ") print(a.size)} 정규식을 써도 동일하다. fun main() { val a = readln().trim().split("\\s+".toRegex()) print(a.size)} 아래와 같이 제출해야 정답으로 인정된다. fun main() { val a = readln().trim().split("\\s+".toRegex()).filter { it != "" } print..

중간에 공백을 포함한 두 숫자를 입력받고, 이 숫자들의 합을 구해서 출력하는 백준의 기본 문제다.말로만 듣던 백준도 시작해보고, 유저로부터 입력을 받는 괜찮은 방법이 있어서 그 방법을 사용할 겸 문제를 풀어본다. fun main() { val (A, B) = readln().split(" ").map { it.toInt() } println(A + B)} readLine()도 있지만 readln()을 쓰면 입력 받기가 더 편하다. readln()의 리턴타입이 String이기 때문에 split 사용도 문제 없고, 숫자로 바꿔야 한다면 map을 통해 바꾸는 것도 가능하다.readLine(), readln()의 차이는 nullable 여부다. readln()은 null을 허용하지 않고, readLi..

풀지 못해서 다른 사람의 풀이를 참고했다. 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' ..