Kotlin/Kotlin 알고리즘

백준 10815번 숫자 카드 Kotlin 구현해보기

kimc 2022. 9. 8. 16:03

```

백준 10815번 숫자 카드 Kotlin 구현해보기

```

Kimc Kotlin Study

이번 글을 통해 배워갈 내용

  1. 백준 10815번 풀이

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

 

10815번: 숫자 카드

첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10,

www.acmicpc.net

 

백준 10815번 숫자카드는

난이도 실버 등급의 문제로서

500, 000 개 이하의 보유한 숫자 카드들이 주어지고

동일하거나 적은 수의 찾는 숫자 카드들이 주어질 때

입력된 찾는 숫자카드 순서대로

보유한 카드에 있으면 1, 없으면 0을 출력해주면 되는 문제입니다.

 


30분 정도 위에 링크를 방문하셔서 풀어보시고

안 풀리시는 경우에만 아래 해답을 봐주시면 감사하겠습니다.


입력을 받고

리스트에 저장하였습니다

 

보유한 카드는 오름차순으로 정렬하였고

찾는 카드를 순회하면서 시간복잡도를 줄이기 위해서 보유 카드에 이분 탐색을 하였습니다.

그리고 결과를 문자열로 더해주고 한 번에 출력하였습니다.

 

fun main(args: Array<String>) {
    // 입력
    readln()
    val givenCards = readln().split(" ").map { it.toInt() }.sorted()
    readln()
    val findCards = readln().split(" ").map { it.toInt() }
    // 출력
    print(findCards.map { n-> if(givenCards.binarySearch(n) < 0) 0 else 1 }.joinToString(" "))
}

// https://codemasterkimc.tistory.com/

 

읽어주셔서 감사합니다

 

무엇인가 얻어가셨기를 바라며

 

오늘도 즐거운 코딩 하시길 바랍니다 ~ :)

 


참조

https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/binary-search.html

 

binarySearch - Kotlin Programming Language

 

kotlinlang.org

 

728x90