Menu
Coddy logo textTech

부분집합 확인

Coddy Kotlin 여정의 논리와 흐름 섹션에 포함된 레슨. 63개 중 14번째.

available.containsAll(required)은 필요한 모든 항목을 사용할 수 있는지 확인합니다. 필요한 목록에 중복 항목이 있어도 이는 멤버십 확인이므로 여러 개의 복사본을 요구하지 않습니다. 비어 있는 required 컬렉션은 항상 포함됩니다.

main 내부:

val available = setOf("pen", "pad")
println(available.containsAll(listOf("pen", "pen")))

두 요구 사항 모두 동일한 멤버십을 요청하며, 이는 사용 가능합니다.

containsAll은 멤버십을 확인할 뿐, 사용 가능한 복사본의 개수는 확인하지 않습니다.

challenge icon

챌린지

중급

매개변수 available: List<String>, required: List<String>를 사용하여 canCover를 완성하세요. 모든 required 항목이 available 항목에 포함되어 있는지 반환하세요. 이는 수량 문제가 아니라 멤버십 문제입니다.

위에 더 엄격한 범위가 명시되어 있지 않다면, 컬렉션은 각 수준에서 최대 100개의 요소를 포함하며 정수 인수와 정수 컬렉션 값은 -1000에서 1000 사이입니다. 파싱을 위해 제공되는 텍스트에는 설명된 대로 유효하지 않거나 범위를 벗어난 표현이 포함될 수 있습니다.

Boolean 유형의 값을 반환하세요. 제공된 입력/출력 코드를 그대로 유지하세요. 스칼라 인수는 한 줄에 하나씩 읽습니다. 리스트는 개수와 그 뒤에 이어지는 요소로 시작하며, 맵은 항목 개수와 그 뒤에 이어지는 각 키와 값으로 시작합니다. 중첩 리스트에서는 각 행에 대해 개수와 요소 형식을 반복합니다. 제공된 main은 반환값을 출력한 다음 줄바꿈 하나를 출력합니다. 리스트는 Kotlin의 표준 대괄호 형식을 사용합니다. 추가 레이블은 출력하지 마세요.

직접 해보기

fun canCover(available: List<String>, required: List<String>): Boolean {
    // 여기에 솔루션을 작성하세요.
    return false
}
fun main() {
    val availableCount = readln().toInt()
    val available = mutableListOf<String>()
    for (i0 in 0 until availableCount) {
        val availableItem = readLine().orEmpty()
        available.add(availableItem)
    }
    val requiredCount = readln().toInt()
    val required = mutableListOf<String>()
    for (i0 in 0 until requiredCount) {
        val requiredItem = readLine().orEmpty()
        required.add(requiredItem)
    }
    println(canCover(available, required))
}
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

논리와 흐름의 모든 레슨

직접 연습해 보세요: Kotlin 플레이그라운드