일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- jvm이란
- ar vr 차이
- 안드로이드 라이선스
- 안드로이드 라이선스 종류
- 안드로이드 유닛 테스트 예시
- rxjava hot observable
- 스택 자바 코드
- 멤버변수
- jvm 작동 원리
- 안드로이드 유닛테스트란
- ANR이란
- 플러터 설치 2022
- rxjava disposable
- android ar 개발
- android retrofit login
- 안드로이드 레트로핏 crud
- 큐 자바 코드
- 2022 플러터 설치
- 스택 큐 차이
- 서비스 vs 쓰레드
- Rxjava Observable
- 클래스
- 2022 플러터 안드로이드 스튜디오
- 서비스 쓰레드 차이
- 안드로이드 레트로핏 사용법
- 안드로이드 유닛 테스트
- rxjava cold observable
- 자바 다형성
- 안드로이드 os 구조
- 객체
- Today
- Total
목록알고리즘 문제 풀이/백준 (9)
나만을 위한 블로그
4의 배수인 숫자만 입력으로 들어오고, "long" 글자 하나가 4라는 것, 공백 삽입에 주의하면 되는 문제다. 귀찮게 for문 쓰는 것보다 repeat를 사용한다. 그리고 long이 몇 개가 붙을지도 알 수 없으니 깡으로 String을 이어붙이는 것보다 StringBuilder를 활용하자. fun main() { val num: Int = readln().toInt() / 4 val sb = StringBuilder() repeat(num) { sb.append("long ") } val result = sb.append("int").toString() println(result) }
숫자와 숫자 사이에 공백이 있을테니 그걸로 split해서 리스트에 담은 다음, 결과 리스트에 담긴 요소들을 모두 더해서 출력하면 끝이다. fun main() { val list = readln().split(" ") println(list.sumOf { it.toLong() }) } Int로 제출하면 런타임 에러(NumberFormat)이라고 뜨면서 실패한다.
중간에 X가 섞인 경우의 처리를 어떻게 할지가 문제였다. fun main() { val count = readln().toInt() repeat(count) { val input = readln().split("") var score = 0 var sum = 0 input.map { if (it == "O") { score++ sum += score } else { score = 0 } } println(sum) } }
fun main() { val count = readln().toInt() val grade = readln().split(" ") val list = arrayListOf() for (i in grade) { list.add(i.toInt()) } val max = list.max() var result = 0.0 for (i in list) { result += (i.toDouble() / max.toDouble()) * 100 } println((result / count)) }
fun main() { val list = arrayListOf() repeat(10) { list.add(readln().toInt()) } val list2 = arrayListOf() for (i in list) { list2.add(i % 42) } println(list2.distinct().count()) }
fun main() { val list = arrayListOf() repeat(28) { list.add(readln().toInt()) } val result = arrayListOf() for (i in 1 .. 30) { if (i !in list) { result.add(i) } } println(result[0]) println(result[1]) }
fun main() { val list = arrayListOf() repeat(9) { list.add(readln().toInt()) } val max = list.max() val index = list.indexOf(max) + 1 println("$max $index") }
예제 출력대로 나오게 하려면 joinToString(" ")을 해야 하는데 깜빡 잊고 하지 않아서 삽질했다. fun main() { val two = readln().split(" ") val nums = readln().split(" ") println(nums.filter { it.toInt() < two[1].toInt() }.joinToString(" ")) }
사실 첫째 줄의 입력은 필요없다. 둘째, 셋째 줄만 있어도 충분히 풀 수 있다. 하지만 첫째 줄에 대한 코드를 적지 않고 제출하면 런타임 에러가 나면서 실패하니 어쩔 수 없이 썼다. fun main() { val intCount = readln().toInt() val nums = readln().split(" ") val wantFindNum = readln().toInt() println(nums.count { it.toInt() == wantFindNum }) }