Kotlin/Algorithm Problems

<백준> 24.05.07에 푼 문제들

re트 2024. 5. 7. 11:27
728x90

1. ZOAC 4(Bronze 3)

[백준]

https://www.acmicpc.net/problem/23971

[깃허브]

 

ForCodeKata/baekjoon 문제집/ZOAC 4 at main · heesoo-park/ForCodeKata

Contribute to heesoo-park/ForCodeKata development by creating an account on GitHub.

github.com

제출 결과

작성한 코드는 다음과 같다.

import java.io.BufferedWriter
import java.io.OutputStreamWriter


fun main() = with(System.`in`.bufferedReader()) {
    val bw = BufferedWriter(OutputStreamWriter(System.out))
    val (h, w, n, m) = readln().split(' ').map { it.toInt() }

    val col = if (h % (1 + n) != 0) (h / (1 + n)) + 1 else h / (1 + n)
    val row = if (w % (1 + m) != 0) (w / (1 + m)) + 1 else w / (1 + m)

    bw.write("${col * row}")
    bw.flush()
    bw.close()
}

 

2. 삼각형과 세 변(Bronze 3)

[백준]

https://www.acmicpc.net/problem/5073

[깃허브]

 

ForCodeKata/baekjoon 문제집/삼각형과 세 변 at main · heesoo-park/ForCodeKata

Contribute to heesoo-park/ForCodeKata development by creating an account on GitHub.

github.com

제출 결과

작성한 코드는 다음과 같다.

import java.io.BufferedWriter
import java.io.OutputStreamWriter


fun main() = with(System.`in`.bufferedReader()) {
    val bw = BufferedWriter(OutputStreamWriter(System.out))

    while (true) {
        val (s1, s2, s3) = readln().split(' ').map { it.toInt() }.sortedDescending()
        if (s1 == 0 && s2 == 0 && s3 == 0) break

        when {
            s1 >= s2 + s3 -> bw.write("Invalid\n")
            s1 == s2 && s2 == s3 -> bw.write("Equilateral\n")
            s1 == s2 && s2 != s3 || s2 == s3 && s3 != s1 || s3 == s1 && s1 != s2 -> bw.write("Isosceles\n")
            else -> bw.write("Scalene\n")
        }
    }

    bw.flush()
    bw.close()
}

 

3. 벌집(Bronze 2)

[백준]

https://www.acmicpc.net/problem/2292

[깃허브]

 

ForCodeKata/baekjoon 문제집/벌집 at main · heesoo-park/ForCodeKata

Contribute to heesoo-park/ForCodeKata development by creating an account on GitHub.

github.com

제출 결과

작성한 코드는 다음과 같다.

import java.io.BufferedWriter
import java.io.OutputStreamWriter


fun main() = with(System.`in`.bufferedReader()) {
    val bw = BufferedWriter(OutputStreamWriter(System.out))
    val dest = readln().toInt()

    var result = 1
    var step = 6
    var range = 1

    if (dest == range) {
        bw.write("$result")
    } else {
        while (true) {
            range += step
            result++

            if (dest <= range) {
                bw.write("$result")
                break
            }

            step += 6
        }
    }

    bw.flush()
    bw.close()
}

 

4. 단어 공부(Bronze 1)

[백준]

https://www.acmicpc.net/problem/1157

[깃허브]

 

ForCodeKata/baekjoon 문제집/단어 공부 at main · heesoo-park/ForCodeKata

Contribute to heesoo-park/ForCodeKata development by creating an account on GitHub.

github.com

제출 결과

작성한 코드는 다음과 같다.

import java.io.BufferedWriter
import java.io.OutputStreamWriter


fun main() = with(System.`in`.bufferedReader()) {
    val bw = BufferedWriter(OutputStreamWriter(System.out))
    val wordSet = readln().uppercase().groupingBy { it }.eachCount()

    val cnt = wordSet.maxBy { it.value }
    if (wordSet.count { it.value == cnt.value } > 1) {
        bw.write("?")
    } else {
        bw.write("${cnt.key}")
    }

    bw.flush()
    bw.close()
}

 

반응형

'Kotlin > Algorithm Problems' 카테고리의 다른 글

<백준> 24.05.09에 푼 문제들  (0) 2024.05.09
<백준> 24.05.08에 푼 문제들  (0) 2024.05.08
<백준> 파티(Gold 3)  (0) 2024.05.03
<백준> 고층 건물(Gold 4)  (0) 2024.05.02
<백준> 줄 세우기(Gold 4)  (1) 2024.04.30