πŸ’― | λ°±μ€€/πŸ˜€ | Bronze

[Kotlin, B3] λ°±μ€€ 15894번 μˆ˜ν•™μ€ 체윑과λͺ©μž…λ‹ˆλ‹€

immgga 2024. 9. 3. 20:10
λ°˜μ‘ν˜•

좜처: unsplash.com

 

μˆ˜ν•™μ€ 체윑과λͺ©μž…λ‹ˆλ‹€(15894번)

Bronze 3

#μˆ˜ν•™ #사칙연산

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

 

문제 λ‚΄μš©

 

 

문제 μ ‘κ·Ό

λ„ν˜•μ˜ ν•œ λ³€μ˜ κΈΈμ΄λŠ” 1이닀.

κ°€μž₯ μœ—λΆ€λΆ„μ˜ μ •μ‚¬κ°ν˜•μ€ 3이닀. 그리고 κ°€μž₯ μ•„λž˜μ˜ μ •μ‚¬κ°ν˜•λ“€μ˜ λ‘˜λ ˆλŠ” μ–‘ μ˜†μ˜ λ³€μ˜ 길이 2와 λ°”λ‘œ μœ„μΈ΅μ˜ μ •μ‚¬κ°ν˜•μ˜ μ˜μ—­μ„ μ œμ™Έν•œ μ–‘ 끝의 0.5μ”© ν•΄μ„œ 1이닀. 그리고 λ§ˆμ§€λ§‰ λ°‘λ³€μ˜ 길이λ₯Ό ν•©ν•˜λ©΄ λœλ‹€.

맨 μ•„λž˜μ˜ μ •μ‚¬κ°ν˜•μ΄ 3κ°œκ°€ μžˆμ„ λ•ŒλŠ” 2 + 1 + 3 = 6이 λœλ‹€.

 

λ§ˆμ§€λ§‰ 측을 μ œμ™Έν•˜λ©΄ 항상 λ‘˜λ ˆλŠ” 3이 λœλ‹€λŠ” κ·œμΉ™μ„ μ‰½κ²Œ 찾을 수 μžˆλ‹€.

μž…λ ₯ 예제λ₯Ό 보면 μž…λ ₯이 3으둜 μ£Όμ–΄μ§€λŠ”λ°, μ΄λŠ” μ΅œν•˜λ‹¨μ˜ μ •μ‚¬κ°ν˜•μ΄ 3κ°œκ°€ μžˆλ‹€λŠ” λœ»μ΄λ‹€.

1측의 μ •μ‚¬κ°ν˜•μ€ μ–‘μ˜†(2)κ³Ό 맨 μœ„(1)ν•΄μ„œ λ‘˜λ ˆλŠ” 3이고, 2측은 μ–‘μ˜†(2)κ³Ό 상단 λΆ€λΆ„μ˜ κ²ΉμΉ˜μ§€ μ•ŠλŠ” λΆ€λΆ„(0.5 * 2 = 1)의 ν•©μœΌλ‘œ λ‘˜λ ˆλŠ” 3이 λœλ‹€.

λ§ˆμ§€λ§‰ 측의 κ²½μš°λŠ” μ–‘μ˜†(2)κ³Ό μƒλ‹¨μ˜ κ²ΉμΉ˜μ§€ μ•ŠλŠ” λΆ€λΆ„(1) 그리고 μ•„λž«λ³€μ˜ 길이(3)둜 6μ΄λΌμ„œ 3 + 3 + 6 = 12κ°€ λœλ‹€.

 

μœ„ 예제λ₯Ό λ³΄λ‹€μ‹œν”Ό, λ§ˆμ§€λ§‰ 측을 μ œμ™Έν•˜λ©΄ 각 측의 λ‘˜λ ˆλŠ” 항상 3이 λœλ‹€.

λ§ˆμ§€λ§‰ 측은 3에닀가 λ§ˆμ§€λ§‰ 측의 μ •μ‚¬κ°ν˜•μ˜ 개수(μž…λ ₯κ°’)λ₯Ό 더해주면 λœλ‹€.

 

 

문제 ν•΄κ²° μ½”λ“œ

더보기
import java.io.BufferedReader
import java.io.InputStreamReader

fun main() = with(BufferedReader(InputStreamReader(System.`in`))) {
    val bottomSquare = readLine().toInt()
    var perimeter: Long = 0

    for (i in bottomSquare downTo 1) {
        perimeter += if (i == bottomSquare) bottomSquare + 3
        else 3
    }

    println(perimeter)
}

 

문제 풀이

μž…λ ₯κ°’μ˜ 수만큼 λ°˜λ³΅ν•˜λ©΄μ„œ λ§ˆμ§€λ§‰μ—λ§Œ 3 + μ •μ‚¬κ°ν˜•μ˜ 개수λ₯Ό 더해주면 λœλ‹€.

 

 

문제 ν•΄κ²° κ³Όμ •

κ΅¬ν˜„μ΄ 쉽닀.

μ•½κ°„μ˜ κ΄€μ°°λ§Œ ν•˜λ©΄ κ·œμΉ™ 찾기도 μ–΄λ ΅μ§€ μ•Šλ‹€.

728x90
λ°˜μ‘ν˜•