반응형

백준 10815번 문제입니다. (solved.ac) 기준 실버 5 문제입니다.

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

 

10815번: 숫자 카드

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

www.acmicpc.net

문제

문제 접근

첫 번째 줄에 상근이 가지고 있는 숫자 카드의 개수를 입력받고
두 번째 줄에 상근이가 가지고 있는 숫자 카드들을 입력받고
세 번째 줄에 상근이가 가지고 있는 카드인지 아닌지 확인해볼 정수의 개수를 입력받고
네 번째 줄에 상근이가 가지고 있는 카드인지 아닌지 확인해볼 정수들을 입력 받습니다.

두 번째 줄에서 입력 받은 상근이가 가지고 있는 숫자 카드들을 mutableSet(집합)으로 만들어주고
네 번째 줄에서 확인해볼 정수들을 하나씩 순차 탐색하여 상근이가 가지고 있는 숫자 카드 집합에 add를 해줍니다.
확인해볼 정수를 상근이의 숫자 카드 집합에 add를 하였을 때 false가 반환된다면 이미 있는 카드, true를 반환한다면 없던 카드이므로 
문제의 출력 조건에 맞도록 경웨 따라 1 혹은 0을 출력할 수 있도록 해줍니다.

정답 코드

fun main() {

    val n = readln().toInt()
    val cardSet = readln().split(" ").map { it.toInt() }.toMutableSet()
    val m = readln().toInt()

    // 상근이가 가지고 있는 카드번호를 입력받고 순차 탐색
    readln().split(" ").map { it.toInt() }.forEach {
        if (!cardSet.add(it)) print("1 ")
        else print("0 ")
    }
    
}
반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기