Programming/Algorithm

[Kotlin] ๋ฐฑ์ค€ 1292 - ์‰ฝ๊ฒŒ ํ‘ธ๋Š” ๋ฌธ์ œ

Space_Jin 2024. 11. 13. 22:47
728x90
๋ฐ˜์‘ํ˜•

1. ๋ฌธ์ œ

๋™ํ˜ธ๋Š” ๋‚ด๋…„์— ์ดˆ๋“ฑํ•™๊ต๋ฅผ ์ž…ํ•™ํ•œ๋‹ค. ๊ทธ๋ž˜์„œ ๋™ํ˜ธ ์–ด๋จธ๋‹ˆ๋Š” ์ˆ˜ํ•™ ์„ ํ–‰ ํ•™์Šต์„ ์œ„ํ•ด ์‰ฝ๊ฒŒ ํ‘ธ๋Š” ๋ฌธ์ œ๋ฅผ ๋™ํ˜ธ์—๊ฒŒ ์ฃผ์—ˆ๋‹ค.

์ด ๋ฌธ์ œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. 1์„ ํ•œ ๋ฒˆ, 2๋ฅผ ๋‘ ๋ฒˆ, 3์„ ์„ธ ๋ฒˆ, ์ด๋Ÿฐ ์‹์œผ๋กœ 1 2 2 3 3 3 4 4 4 4 5 .. ์ด๋Ÿฌํ•œ ์ˆ˜์—ด์„ ๋งŒ๋“ค๊ณ  ์–ด๋Š ์ผ์ •ํ•œ ๊ตฌ๊ฐ„์„ ์ฃผ๋ฉด ๊ทธ ๊ตฌ๊ฐ„์˜ ํ•ฉ์„ ๊ตฌํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

ํ•˜์ง€๋งŒ ๋™ํ˜ธ๋Š” ํ˜„์žฌ ๋” ์–ด๋ ค์šด ๋ฌธ์ œ๋ฅผ ํ‘ธ๋Š๋ผ ๋ฐ”์˜๊ธฐ์— ์šฐ๋ฆฌ๊ฐ€ ๋™ํ˜ธ๋ฅผ ๋„์™€์ฃผ์ž.

2. ์ž…๋ ฅ

์ฒซ์งธ ์ค„์— ๊ตฌ๊ฐ„์˜ ์‹œ์ž‘๊ณผ ๋์„ ๋‚˜ํƒ€๋‚ด๋Š” ์ •์ˆ˜ A, B(1 ≤ A ≤ B ≤ 1,000)๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์ฆ‰, ์ˆ˜์—ด์—์„œ A๋ฒˆ์งธ ์ˆซ์ž๋ถ€ํ„ฐ B๋ฒˆ์งธ ์ˆซ์ž๊นŒ์ง€ ํ•ฉ์„ ๊ตฌํ•˜๋ฉด ๋œ๋‹ค.

3. ํ’€์ด (์ƒ๊ฐ์˜ ํ๋ฆ„)

1. ๊ตฌ๊ฐ„์˜ ํ•ฉ -> 3~7 ๊ตฌ๊ฐ„์˜ ํ•ฉ์ด๋ž€, 7๊นŒ์ง€ ๋ˆ„์ ๋œ ํ•ฉ - 2๊นŒ์ง€ ๋ˆ„์ ๋œ ํ•ฉ๊ณผ ๋™์ผํ•˜๋‹ค

2. 3~7๊ตฌ๊ฐ„์˜ ํ•ฉ = 7 ๋ˆ„์  ํ•ฉ - 2 ๋ˆ„์  ํ•ฉ

3. ๋ˆ„์  ํ•ฉ์ด๋ž€ 0๋ถ€ํ„ฐ N๊นŒ์ง€ ์ˆœ์ฐจ์ ์œผ๋กœ ์ˆœํšŒํ•˜๋ฉด์„œ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. -> Big O(N), N์˜ ์ตœ๋Œ€ ๊ฐ’์€ 1,000์ด๋ฏ€๋กœ ์ˆ˜์šฉํ•œ๋‹ค.

4. ์ œ์ถœ ์†Œ์Šค

import java.util.*

fun main() = with(System.`in`.bufferedReader()) {
    val (s, e) = readLine().split(" ").map{ it.toInt() }	// ์ž…๋ ฅ๋œ ๋‘ ๊ฐ’์„ ๋ฐ›๊ธฐ 
    var n = 1	// ํ˜„์žฌ ๊ตฌ๊ฐ„์˜ ๊ฐ’
    var c = 1	// ํ˜„์žฌ ๊ตฌ๊ฐ„์˜ ๊ฐ’์ด ๋‚˜์˜จ ํšŸ์ˆ˜
    
    val arr = IntArray(e + 1)	// ๊ตฌ๊ฐ„์˜ ๋ˆ„์ ํ•ฉ์„ ๋‹ด์„ ๋ฐฐ์—ด
    arr[0] = 0					// 1๊ตฌ๊ฐ„์„ index 1๋กœ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ 0๊ตฌ๊ฐ„์˜ ํ•ฉ์€ 0

	// ๊ตฌ๊ฐ„ 1๋ถ€ํ„ฐ e๊นŒ์ง€ ์ˆœํšŒ
    for (i : Int in 1..e){
        arr[i] = arr[i-1] + n	// ํ˜„์žฌ ๊ตฌ๊ฐ„์˜ ๋ˆ„์ ํ•ฉ = ์ด์ „ ๊ตฌ๊ฐ„์˜ ๋ˆ„์ ํ•ฉ + ํ˜„์žฌ ๊ตฌ๊ฐ„์˜ ๊ฐ’
        c++						// ํ˜„์žฌ ๊ตฌ๊ฐ„์˜ ๊ฐ’์ด ๋‚˜์˜จ ํšŸ์ˆ˜๋ฅผ ์ถ”๊ฐ€
        if(c > n){				// ํ˜„์žฌ ๊ตฌ๊ฐ„์˜ ๊ฐ’์ด ๋‚˜์˜จ ํšŸ์ˆ˜๊ฐ€ ํ˜„์žฌ ๊ตฌ๊ฐ„์˜ ๊ฐ’์„ ์ดˆ๊ณผํ•˜๋‹ค๋ฉด, ๊ฐ’์„ ์˜ฌ๋ฆฌ๊ณ  ๊ฐฏ์ˆ˜๋ฅผ 1๋กœ ์ดˆ๊ธฐํ™”
            n++
            c = 1
        }
    }
    
    println(arr[e] - arr[s-1])	// ์ถœ๋ ฅ: ๋ ๋ˆ„์ ํ•ฉ - ์‹œ์ž‘ ์ง€์  ์•ž์˜ ๋ˆ„์ ํ•ฉ
}

 

728x90
๋ฐ˜์‘ํ˜•