문제
5052번: 전화번호 목록
첫째 줄에 테스트 케이스의 개수 t가 주어진다. (1 ≤ t ≤ 50) 각 테스트 케이스의 첫째 줄에는 전화번호의 수 n이 주어진다. (1 ≤ n ≤ 10000) 다음 n개의 줄에는 목록에 포함되어 있는 전화번호가
www.acmicpc.net

풀이
전화번호를 문자열로 입력받고 이를 정렬하여 번호를 비교하는 방식으로 해결할 수 있다.
예를 들어, 예제 입력1의 테스트 케이스인 911, 97625999, 91125426을 입력받은 경우, 이를 오름차순으로 정렬하면 911, 91125426, 97625999 가 된다. 여기서 startsWith() 함수를 사용하여 이전의 번호가 다음 번호에 포함되는지 여부를 확인할 수 있다. 이를 통해 전화번호 목록이 일관성 있는 목록인지 판단할 수 있다.
코드
fun main() { val br = System.`in`.bufferedReader() val bw = System.out.bufferedWriter() val sb = StringBuilder() repeat(br.readLine().toInt()) { val num = br.readLine().toInt() val arr = Array(num) { br.readLine() } arr.sort() sb.append(if(check(arr)) "YES\n" else "NO\n") } bw.write(sb.toString()) bw.flush() bw.close() br.close() } fun check(arr: Array<String>): Boolean { for(i in 1 until arr.size) { if(arr[i].startsWith(arr[i-1])) { return false } } return true }
'알고리즘 > Baekjoon' 카테고리의 다른 글
[백준] 11441번: 합 구하기 - Kotlin[코틀린] (0) | 2024.04.09 |
---|---|
[백준] 11047번: 동전 0 - Kotlin[코틀린] (0) | 2024.04.01 |
[백준] 1913번: 달팽이 - Kotlin[코틀린] (0) | 2024.03.22 |
[백준] 11501번: 주식 - Kotlin[코틀린] (0) | 2024.03.20 |
[백준] 13301번: 타일 장식물 - Kotlin[코틀린] (0) | 2024.03.17 |