코딩테스트

    (백준/Kotlin) 1764번 : 듣보잡

    난이도: Silver 4 프로그래밍 언어: Kotlin 문제명: 듣보잡 푼일자: 2022년 1월 주소: https://www.acmicpc.net/problem/1764 문제풀기 fun main() = with(System.`in`.bufferedReader()) { val set = mutableSetOf() val list = mutableListOf() val (N, M) = readLine().split(' ').map { it.toInt() } repeat(N) { set.add(readLine()) } repeat(M) { val s = readLine() if (set.contains(s)) list.add(s) } val sb = StringBuilder().appendLine(list.s..

    (백준/Kotlin) 1302번 : 베스트셀러

    난이도: Silver 4 프로그래밍 언어: Kotlin 문제명: 베스트셀러 푼일자: 2022년 1월 주소: https://www.acmicpc.net/problem/1302 문제풀기 fun main() = with(System.`in`.bufferedReader()) { val map = mutableMapOf() repeat(readLine().toInt()) { val book = readLine() map[book] = (map[book] ?: 0) + 1 } print(map.toSortedMap().maxByOrNull { it.value }!!.key) }

    (백준/Kotlin) 6588번 : 골드바흐의 추측

    난이도: Silver 1 프로그래밍 언어: Kotlin 문제명: 패션왕 신해빈 푼일자: 2022년 1월 주소: https://www.acmicpc.net/problem/6588 문제풀기 fun main() = with(System.`in`.bufferedReader()) { val sb = StringBuilder() val prime = BooleanArray(1000001) for (i in 2..1000000) if (!prime[i]) for (j in i * 2..1000000 step(i)) prime[j] = true while (true) { val n = readLine().toInt() var exists = false if (n == 0) break for (i in 3..n) if ..

    (백준/Kotlin) 9375번 : 패션왕 신해빈

    난이도: Silver 3 프로그래밍 언어: Kotlin 문제명: 패션왕 신해빈 푼일자: 2022년 1월 주소: https://www.acmicpc.net/problem/9375 문제풀기 split 부분을 StringTokenizer 로 대체하면 시간이 많이 줄어드니 해당 방법도 좋습니다. import java.util.* fun main() = with(System.`in`.bufferedReader()) { val sb = StringBuilder() repeat(readLine().toInt()) { _ -> val map = HashMap() repeat (readLine().toInt()) { val kind = readLine().split(' ')[1] map[kind] = if (map.co..

    (백준/Kotlin) 1159번 : 농구 경기

    (백준/Kotlin) 1159번 : 농구 경기

    난이도: Bronze 2 프로그래밍 언어: Kotlin 문제명: 농구 경기 푼일자: 2022년 1월 주소: https://www.acmicpc.net/problem/1159 문제풀기 몇분만에 푼 문제였습니다. fun main() = with(System.`in`.bufferedReader()) { // 농구 경기 val arr = IntArray(26) val sb = StringBuilder() repeat(readLine().toInt()) { arr[readLine()[0].code - 0x61]++ } arr.forEachIndexed { index, i -> if (i >= 5) sb.append((index + 0x61).toChar()) } print(if (sb.toString().isEm..

    (백준/Kotlin) 5430번 : AC

    (백준/Kotlin) 5430번 : AC

    난이도: Gold 5 프로그래밍 언어: Kotlin 문제명: AC 푼일자: 2021년 11월 주소: https://www.acmicpc.net/problem/5430 문제풀기 문제 자체에는 크게 어려운 내용이 없어서 코드로 바로 작성해 보았습니다. import java.util.* import kotlin.collections.ArrayDeque fun main() = with(System.`in`.bufferedReader()) { // AC val dq = ArrayDeque() val sb = StringBuilder() var st: StringTokenizer val T = readLine().toInt() repeat(T) { _ -> run block@{ val p = readLine().t..

    (백준/Kotlin) 2667번 : 단지번호붙이기

    난이도: Silver 1 프로그래밍 언어: Kotlin 문제명: 단지번호붙이기 푼일자: 2021년 11월 주소: https://www.acmicpc.net/problem/2667 문제풀기 이게 실버 1 문제라고..? 하면서 너무 쉽게 풀어버린 문제였습니다. dfs 를 이용하였습니다. package kr.kua.baekjoon val dirs = arrayOf(intArrayOf(-1, 0), intArrayOf(1, 0), intArrayOf(0, 1), intArrayOf(0, -1)) var m = 0 var n = 0 var t = 0 fun main() = with(System.`in`.bufferedReader()) { // 단지번호붙이기 m = readLine().toInt() n = m va..

    (백준/Kotlin) 5635번 : 생일

    난이도: Silver 5 프로그래밍 언어: Kotlin 문제명: 생일 푼일자: 2021년 11월 주소: https://www.acmicpc.net/problem/5635 문제풀기 import java.time.LocalDate data class People(val name: String, val birthday: LocalDate) fun main() = with(System.`in`.bufferedReader()) { // 생일 val list = mutableListOf() repeat(readLine().toInt()) { val (a, b, c, d) = readLine().split(" ") list.add(People(a, LocalDate.parse("$d-${c.padStart(2, '0..

    (백준/Kotlin) 11650번 : 좌표 정렬하기

    난이도: Silver 5 프로그래밍 언어: Kotlin 문제명: 이상한 곱셈 푼일자: 2021년 11월 주소: https://www.acmicpc.net/problem/11650 문제풀기 import java.util.* fun main() = with(System.`in`.bufferedReader()) { // 좌표 정렬하기 val N = readLine().toInt() val arr = Array(N) { IntArray(2) } repeat(N) { i -> readLine().split(" ").map { it.toInt() }.let { arr[i][0] = it[0]; arr[i][1] = it[1] } } Arrays.sort(arr) { a, b -> if (a[0] == b[0]) r..

    (백준/Kotlin) 1225번 : 이상한 곱셈

    (백준/Kotlin) 1225번 : 이상한 곱셈

    난이도: Bronze 2 프로그래밍 언어: Kotlin 문제명: 이상한 곱셈 푼일자: 2021년 10월 주소: https://www.acmicpc.net/problem/1225 문제풀기 문제 설명에 나온대로 풀어서 결과가 나올 수 있도록 문제를 풀었습니다. fun main() = with(System.`in`.bufferedReader()) { val (A, B) = readLine().split(" ") print(A.fold(0L) { total, num -> total + B.sumOf { num.digitToInt() * it.digitToInt() } }) } 조금 더 머리를 사용해서 알고리즘을 최적화한 버전입니다. fun main() = with(System.`in`.bufferedReader..