๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ’ฏ | ๋ฐฑ์ค€/๐Ÿ˜€ | Bronze

[Kotlin, B1] ๋ฐฑ์ค€ 25593๋ฒˆ ๊ทผ๋ฌด ์ง€์˜ฅ์— ๋น ์ง„ ํ‘ธ์•™์ด (Small)

by immgga 2024. 7. 31.

์ถœ์ฒ˜: unsplash.com

 

๊ทผ๋ฌด ์ง€์˜ฅ์— ๋น ์ง„ ํ‘ธ์•™์ด (Small)(25593๋ฒˆ)

Bronze 1

#๊ตฌํ˜„ #์ž๋ฃŒ ๊ตฌ์กฐ #๋ฌธ์ž์—ด #ํ•ด์‹œ๋ฅผ ์‚ฌ์šฉํ•œ ์ง‘ํ•ฉ๊ณผ ๋งต

 

๋ฌธ์ œ ๋‚ด์šฉ

 

 

๋ฌธ์ œ ์ ‘๊ทผ

๋ฌธ์ œ๋ฅผ ์ดํ•ดํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋œ๋‹ค.

์‚ฌ์ง„ 1-1

์ž…๋ ฅ ํ˜•์‹์ด ์ฃผ์˜ ๊ฐœ์ˆ˜์ธ N์—์„œ 4๋ฅผ ๊ณฑํ•œ ์ค„ ๋งŒํผ ์ž…๋ ฅ์ด ์ฃผ์–ด์ง€๊ณ  ์žˆ๋‹ค.

์œ„ ๊ทธ๋ฆผ์—์„œ ๋ˆˆ์น˜๊ฐ€ ๋น ๋ฅด์‹  ๋ถ„๋“ค์€ ๋Œ€๊ฐ• ๋ˆˆ์น˜๋ฅผ ์ฑŒ ๊ฒƒ์ด๋‹ค.

์ฒซ ์ค„์˜ ์ฃผ์˜ ๊ฐœ์ˆ˜๋ฅผ ์ž…๋ ฅ๋ฐ›๊ณ  ๋ฌธ์ž์—ด๋“ค์ด ์ฃผ์˜ ๊ฐœ์ˆ˜(4)์˜ 4๋ฅผ ๊ณฑํ•œ ๋งŒํผ์˜ ์ˆ˜(16)๋งŒํผ ์ž…๋ ฅ๋œ๋‹ค๋Š” ์‚ฌ์‹ค์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

 

๋˜ํ•œ ํ•œ ์ค„์— ๊ณต๋ฐฑ์„ ๊ธฐ์ค€์œผ๋กœ 7๊ฐœ๋กœ ๋‚˜๋‰˜์–ด์„œ ์ž…๋ ฅ๋œ๋‹ค. ๋˜ํ•œ ๋ฌธ์ œ ์„ค๋ช…์—์„œ 4 ๊ต๋Œ€ ๊ทผ๋ฌด๋ฅผ ์„ ๋‹ค๊ณ  ๋˜์–ด ์žˆ๋‹ค.

์˜ค์ „ 8 ~ ์˜คํ›„ 12, ์˜คํ›„ 12 ~ ์˜คํ›„ 6, ์˜คํ›„ 6 ~ ์˜คํ›„ 10, ์˜คํ›„ 10 ~ ์˜ค์ „ 8 ํ•ด์„œ 4๋ฒˆ์˜ ๊ต๋Œ€๊ฐ€ ์ด๋ฃจ์–ด์ง„๋‹ค.

- - - - - pangyo puang
- - - - - sally boss
- - - - - leonard brown
- - - - - edward edward

์ž…๋ ฅ๊ฐ’์—์„œ 4๊ฐœ์˜ ์ค„์„ ๋–ผ์™”๋‹ค. ์ด ๊ฐ’๋“ค์ด ์ฒซ ์ฃผ์˜ ๊ทผ๋ฌดํ‘œ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฒƒ์ด๋‹ค.

์™œ ์ด ๊ฐ’๋“ค์ด ์ฒซ ์ฃผ์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ๋˜๋Š”์ง€๋Š” ํžŒํŠธ๋ฅผ ๋ณด๋ฉด ์•Œ ์ˆ˜ ์žˆ๋‹ค.

5๋ฒˆ์งธ ์ค„์˜ ์ฒซ ๋ฒˆ์งธ ๊ทผ๋ฌด์ž๊ฐ€ puang์ด๋‹ค. ํžŒํŠธ๋ฅผ ๋ณด๋ฉด ๋‘˜์งธ ์ฃผ ์ฒซ๋‚ ์ด๋ผ๊ณ  ์–ธ๊ธ‰๋˜์–ด ์žˆ๋‹ค. ๋‹ค์Œ ์‹œ๊ฐ„๋Œ€์˜ ๊ทผ๋ฌด์ž๋Š” ์ด์ „ ์‹œ๊ฐ„๋Œ€์˜ ๋‹ค์Œ ์ค„์— ์ž…๋ ฅ๋˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

์ด๋ฅผ ํ†ตํ•ด 2๊ฐ€์ง€ ์‚ฌ์‹ค์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

 

1. ์ž…๋ ฅ์€ 1์ฃผ๊ฐ€ 4์ค„๋กœ ์ž…๋ ฅ๋œ๋‹ค.

2. 1์ค„์— ๊ฐ ๊ทผ๋ฌด์— ํ•ด๋‹นํ•˜๋Š” ์‹œ๊ฐ„๋Œ€์— ๊ทผ๋ฌดํ•˜๋Š” ๊ทผ๋ฌด์ž๋“ค์„ ์ž…๋ ฅ๋ฐ›๋Š”๋‹ค. ์ฒซ ์ฃผ์˜ ์ž…๋ ฅ๊ฐ’์—์„œ 1๋ฒˆ์งธ ์ค„์€ ์ฒซ ์ฃผ์˜ ์˜ค์ „ 8์‹œ๋ถ€ํ„ฐ ์˜คํ›„ 12์‹œ๊นŒ์ง€์˜ ๊ทผ๋ฌด์ž ๋ชฉ๋ก์„ ์ž…๋ ฅ๋ฐ›๋Š” ๊ฒƒ์ด๋‹ค.

๋‹ค์‹œ ์ž…๋ ฅ ์˜ˆ์ œ๋ฅผ ์ด์šฉํ•ด ์ •๋ฆฌ๋ฅผ ํ•ด ๋ณด๊ฒ ๋‹ค.

// ์ž…๋ ฅ๋˜๋Š” ๊ทผ๋ฌด์ž๋Š” ๊ณต๋ฐฑ์„ ๊ธฐ์ค€์œผ๋กœ 7๊ฐœ๋ฅผ ์ž…๋ ฅ๋ฐ›๋Š”๋‹ค(๊ฐ ์š”์ผ์— ๊ทผ๋ฌดํ•˜๋Š” ์‚ฌ๋žŒ์„ ์˜๋ฏธํ•จ)
- - - - - pangyo puang      // ์˜ค์ „ 8์‹œ ~ ์˜คํ›„ 12์‹œ ๊ทผ๋ฌด์ž(4์‹œ๊ฐ„)
- - - - - sally boss        // ์˜คํ›„ 12์‹œ ~ ์˜คํ›„ 6์‹œ ๊ทผ๋ฌด์ž(6์‹œ๊ฐ„)
- - - - - leonard brown     // ์˜คํ›„ 6์‹œ ~ ์˜คํ›„ 10์‹œ ๊ทผ๋ฌด์ž(4์‹œ๊ฐ„)
- - - - - edward edward     // ์˜คํ›„ 10์‹œ ~ ์˜ค์ „ 8์‹œ ๊ทผ๋ฌด์ž(10์‹œ๊ฐ„)

 

์ž…๋ ฅ๊ฐ’๋“ค์„ ์ด์šฉํ•ด ์ด์ œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” N์˜ * 4๋งŒํผ ๋ฐ˜๋ณตํ•ด์„œ ๊ฐ’์„ ์ž…๋ ฅ๋ฐ›๊ณ  ๊ฐ ์ค„์— ๋งž๋Š” ๊ทผ๋ฌด ํƒ€์ž„์„ ์ง€์ •ํ•ด ์–ด๋–ค ์‚ฌ๋žŒ์ด ์–ผ๋งˆ๋งŒํผ ๊ทผ๋ฌด๋ฅผ ํ–ˆ๋Š”์ง€ ๋”ํ•ด๊ฐ€๋ฉด์„œ ๊ณ„์‚ฐํ•˜๋ฉด ๋œ๋‹ค.

Map์„ ์ด์šฉํ•ด์„œ ๊ทผ๋ฌด์ž์™€ ๊ทผ๋ฌด ์‹œ๊ฐ„์„ ์ •์˜ํ•ด ์ฃผ๋ฉด ๊ฐ ๊ทผ๋ฌด์ž์— ๋Œ€ํ•œ ๊ทผ๋ฌด ์‹œ๊ฐ„์„ ํŽธํ•˜๊ฒŒ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

์ค„์— ๋งž๋Š” ๊ทผ๋ฌด ํƒ€์ž„์„ ์ง€์ •ํ•˜๋ ค๋ฉด ๊ฐ ๊ทผ๋ฌด ํƒ€์ž„์— ๋ช‡ ์‹œ๊ฐ„๋งŒํผ ์ผํ•˜๋Š”์ง€ ๋ฐฐ์—ด๋กœ ์ €์žฅํ•˜๊ณ , ์ž…๋ ฅ ์ˆœ์„œ์— ๊ฐ ๋ฐฐ์—ด์„ 4๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๊ฐ’์„ index๋กœ ์„ค์ •ํ•ด์„œ ์ ์ ˆํ•œ ๊ทผ๋ฌด ํƒ€์ž„์„ ์„ค์ •ํ•ด ์ค€๋‹ค.

๊ทธ์ „์— Map์˜ key๊ฐ€ ์กด์žฌํ•˜๋Š”์ง€ ํ™•์ธํ•ด์•ผ ํ•œ๋‹ค. Map์— key๊ฐ€ ๋ฐ์ดํ„ฐ๊ฐ€ ์กด์žฌํ•˜๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” containsKey()๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

if (!worker.containsKey(week[j])) {
    worker[week[j]] = hour[i % 4]
} else {
    worker[week[j]] = worker[week[j]]!! + hour[i % 4]
}

 

 

๊ทธ๋ฆฌ๊ณ  ๊ฐ€์žฅ ์ ๊ฒŒ ์ผํ•œ ์‚ฌ๋žŒ๊ณผ ๊ฐ€์žฅ ๋งŽ์ด ์ผํ•œ ์‚ฌ๋žŒ์˜ ์ฐจ์ด๊ฐ€ 12๋ณด๋‹ค ํฌ๋ฉด ๊ณตํ‰ํ•˜์ง€ ์•Š์€ ๊ทผ๋ฌด๊ฐ€ ๋œ๋‹ค. ์กฐ๊ฑด์€ ์•„๋ž˜์™€ ๊ฐ™์ด ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

if (maxWork - minWork > 12) println("No")
else println("Yes")

๊ทธ๋ฆฌ๊ณ  ๊ทผ๋ฌด์ž๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š์„ ๋•Œ๋Š” Map์ด ๋น„์–ด ์žˆ์œผ๋ฉด ๊ทผ๋ฌด์ž๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š๋‹ค๋Š” ๋œป์ด๋‹ค. isEmpty()๋กœ ๋น„์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•ด ์ค€๋‹ค.

 

 

๋ฌธ์ œ ํ•ด๊ฒฐ ์ฝ”๋“œ

๋”๋ณด๊ธฐ
import java.io.BufferedReader
import java.io.InputStreamReader

fun main() = with(BufferedReader(InputStreamReader(System.`in`))) {
    val weeks = readLine().toInt()
    val worker = mutableMapOf<String, Int>()
    val hour = listOf(10, 4, 6, 4)

    for (i in 1 .. weeks * 4) {
        val week = readLine().split(" ")

        for (j in week.indices) {
            if (week[j] == "-") continue
            else {
                if (!worker.containsKey(week[j])) {
                    worker[week[j]] = hour[i % 4]
                } else {
                    worker[week[j]] = worker[week[j]]!! + hour[i % 4]
                }
            }
        }
    }

    if (worker.isEmpty()) {
        println("Yes")
        return
    }

    val maxWork = worker.values.max()
    val minWork = worker.values.min()

    if (maxWork - minWork > 12) println("No")
    else println("Yes")
}

 

๋ฌธ์ œ ํ’€์ด

์ž…๋ ฅ๋ฐ›์€ ์ฃผ์˜ ๊ฐœ์ˆ˜์— * 4๋ฅผ ํ•ด์„œ ์ž…๋ ฅ๋ฐ›์•„์ค˜์•ผ ํ•œ๋‹ค.

๊ทผ๋ฌด์ž ์ •๋ณด๋ฅผ ์ž…๋ ฅ๋ฐ›์•„ ๊ทผ๋ฌด์ž๊ฐ€ ์—†๋Š”์ง€ ํ™•์ธํ•œ๋‹ค.

if (week[j] == "-") continue

๊ทผ๋ฌด์ž๊ฐ€ ์—†์œผ๋ฉด ๋„˜๊ธด๋‹ค.

 

๊ทผ๋ฌด์ž๊ฐ€ ์žˆ์œผ๋ฉด Map์— key๊ฐ€ ์กด์žฌํ•˜๋Š”์ง€ ํ™•์ธํ•ด์•ผ ํ•œ๋‹ค.

์œ„์—์„œ ์–ธ๊ธ‰ํ–ˆ๋‹ค์‹œํ”ผ containsKey()๋ฅผ ์ด์šฉํ•ด์•ผ ํ•œ๋‹ค.

if (!worker.containsKey(week[j])) {
    worker[week[j]] = hour[i % 4]
} else {
    worker[week[j]] = worker[week[j]]!! + hour[i % 4]
}

ํ‚ค๊ฐ€ ์—†์œผ๋ฉด ํ‚ค๋ฅผ ์ƒˆ๋กœ ์ƒ์„ฑํ•ด ์ดˆ๊ธฐ๊ฐ’์„ ๊ทผ๋ฌด ์‹œ๊ฐ„์œผ๋กœ ์„ค์ •ํ•ด ์ค€๋‹ค.

๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ๊ธฐ์กด ํ‚ค์— ๊ทผ๋ฌด ์‹œ๊ฐ„์„ ๋”ํ•ด ์ค€๋‹ค.

 

๊ทผ๋ฌด ์‹œ๊ฐ„์ด ์ €์žฅ๋œ Map์—์„œ value๋“ค์˜ ์ตœ๋Œ“๊ฐ’๊ณผ ์ตœ์†Ÿ๊ฐ’์„ ๊ตฌํ•ด ์ค€๋‹ค.

์ตœ๋Œ“๊ฐ’์€ ๊ฐ€์žฅ ๊ทผ๋ฌด๋ฅผ ๋งŽ์ด ํ•œ ์‚ฌ๋žŒ์˜ ๊ทผ๋ฌด ์‹œ๊ฐ„์ด๊ณ ,

์ตœ์†Ÿ๊ฐ’์€ ๊ฐ€์žฅ ๊ทผ๋ฌด๋ฅผ ์ ๊ฒŒ ํ•œ ์‚ฌ๋žŒ์˜ ๊ทผ๋ฌด ์‹œ๊ฐ„์ด๋‹ค.

 

๋‘ ๊ฐ’์˜ ์ฐจ๊ฐ€ 12๋ฅผ ๋„˜์–ด๊ฐ€๋ฉด ๊ณตํ‰ํ•˜์ง€ ์•Š์€ ๊ทผ๋ฌด๊ฐ€ ๋œ๋‹ค. ๋ฌธ์ œ ์ ‘๊ทผ์„ ์ฐธ๊ณ ํ•˜์ž.

๋˜ํ•œ ์ž…๋ ฅ์„ ๋ฐ›์•˜๋Š”๋ฐ๋„ Map์ด ๋น„์–ด ์žˆ์œผ๋ฉด ๊ทผ๋ฌด์ž๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๋œป์ด๋‹ค. ๋ฌธ์ œ ์„ค๋ช…์—์„œ๋Š” ์•„๋ฌด๋„ ๊ทผ๋ฌดํ•˜์ง€ ์•Š์œผ๋ฉด ๊ณตํ‰ํ•œ ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผํ•œ๋‹ค.

if (worker.isEmpty()) {
    println("Yes")
    return
}

 

 

๋ฌธ์ œ ํ•ด๊ฒฐ ๊ณผ์ •

๋ฌธ์ œ ํ’€์ด ์‹œ๊ฐ„๋ณด๋‹ค ๋ฌธ์ œ ์ดํ•ด ์‹œ๊ฐ„์ด ๋” ์˜ค๋ž˜ ๊ฑธ๋ ธ๋˜ ๋ฌธ์ œ์ด๋‹ค.

์˜ˆ์ œ 1์˜ ์ž…๋ ฅ๊ฐ’์˜ ์ฒซ ๋ฒˆ์งธ ์ฃผ์˜ ๊ฐ’๊ณผ 4๋ฒˆ์งธ ์ฃผ์˜ ๊ฐ’์˜ ๋นˆ ๊ทผ๋ฌด์ž์—๋งŒ ๋นˆ ๊ทผ๋ฌด์ž(-)๊ฐ€ ์žˆ์–ด์„œ ์ด ๊ฐ’์ด ๋ฌด์Šจ ๊ด€๊ณ„๊ฐ€ ์žˆ๋‚˜? ํ•ด์„œ ํ—›๋‹ค๋ฆฌ๋ฅผ ์งš์—ˆ์—ˆ๋‹ค.

์ดํ•ด๋ฅผ ํ•œ ๋ฒˆ ํ•˜๋‹ˆ๊นŒ ์™œ ๊ทธ๋Ÿฐ ์ƒ๊ฐ์„ ํ–ˆ์„๊นŒ ํ•˜๋Š” ์ƒ๊ฐ์ด ๋“ค๊ธด ํ–ˆ๋‹ค.

๊ตฌํ˜„์€ ๊ทธ๋ƒฅ ๋ฌธ์ž์—ด๋กœ๋„ ๊ฐ€๋Šฅํ•˜๊ธด ํ•œ๋ฐ, Map์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒŒ ์ •์‹ ๊ฑด๊ฐ•์— ์ด๋กœ์šธ ๊ฒƒ์ด๋‹ค.

728x90