[백준] 마지막 한마디 (1813)(kotlin)
문제 설명
입력 및 출력
» 입력
첫째 줄에 항승이가 한 말의 개수 N이 주어진다. N은 1보다 크거나 같고, 100,000보다 작거나 같은 자연수이다. 둘째 줄에 항승이가 한 말에 등장하는 정수가 주어진다. 항승이가 말한 수는 100,000보다 작거나 같은 음이 아닌 정수이다.
» 출력
첫째 줄에 항승이가 한 말 중 몇 개가 참인지 출력한다. 만약 항승이가 한 말이 모순이라면 -1을 출력한다. 만약 가능한 답이 여러개이면 가장 큰 값을 출력한다.
예제 입출력(테스트케이스)
입력 | 출력 |
---|---|
4 0 1 2 3 |
1 |
문제 풀이1
fun main(args: Array<String>) = with(System.`in`.bufferedReader()) {
var arr = IntArray(1_000_001) { 0 }
val N = Integer.parseInt(readLine())
val persons = readLine().split(" ").map { it.toInt() }
var noOne = false
for (person in persons) {
arr[person]++
}
for (i in N downTo 0) {
if (arr[i] == i) {
println(i)
noOne = true
break
}
}
if (!noOne) println(-1)
}